T: apakah ada cara umum untuk mendeteksi apakah titik ada di dalam pasangan karakter yang cocok atau tidak?
Yaitu: apakah ada fungsi predikat umum (atau sesuatu) yang dapat menentukan apakah titik berada di antara pasangan yang cocok atau beberapa karakter yang dipilih secara sewenang-wenang? Saya sedang memikirkan satu yang akan dievaluasi t
dalam, katakanlah, skenario berikut, dengan !
merujuk pada poin:
"!" (quotes in general)
``!'' (LaTeX quotes)
$!$ (LaTeX math)
(!) (lisp parens)
*!* (org emphasis)
Sunting : syntax-ppss
tampaknya menjadi titik awal yang baik, tetapi tidak jelas bagi saya bagaimana orang akan mengadaptasinya ke pasangan yang cocok dengan multi-karakter (misalnya, `` kutipan LaTeX '', atau bahkan cocok <b>html tags</b>
). Saya bertanya-tanya apakah ada solusi umum, atau apakah itu akan membutuhkan parser yang dibuat khusus.
parse-partial-sexp
menjelaskan struktur data yang dikembalikan secarasyntax-ppss
lebih rinci daripada bagian manual Elisp yang saya tautkan.Jika Anda ingin misalnya memeriksa apakah antara kurung kurawal, gunakan ini:
Tentu, Anda dapat mengganti kurung kurawal dengan apa pun yang Anda inginkan.
EDIT:
Fungsi yang lebih bermanfaat adalah sesuatu yang dekat dengan ini:
sumber
}
, dan tidak ada di antara keduanya{}
. Mendapatkan pembatas yang berpasangan tepat dengan regexps bisa sulit. Lebih baik digunakansyntax-pps
seperti yang disarankan @ paprika.}
bukan perilaku yang saya lihat: \ tapi ya, membuat pasangan menggunakan regexps memang rumit, memanglooking-at
memeriksa teks mulai dari titik. kecuali poinnya ada pada}
pernyataan pertama Anda di atas seharusnya tidak bekerja? Mungkin perbedaan antara versi Emacs. : /