Banyaknya backslash yang dibutuhkan regexps saya cukup gila. Apakah Elisp memiliki regexp literal, jadi saya dapat menulis sesuatu seperti
rx"some\(regexp\)"
dari pada
"some\\(regexp\\)"
elisp
regular-expressions
syntax
hidung katak
sumber
sumber
\\|
,\\(
, dan\\)
. Sayangnya, dalam banyak tema ini tidak terlihat. Anda dapat menggantifont-lock-regexp-grouping-backslash
danfont-lock-regexp-grouping-construct
membuat ini lebih berbeda.Jawaban:
Salah satu opsi adalah menggunakan
rx
makro untuk membangun ekspresi Anda menggunakan sexps.Teladan Anda menjadi
(rx "some" (group "regexp"))
Berikut adalah beberapa contoh lagi dari bagian komentar di rx.el, untuk mendapatkan ide tentang cara
rx
kerjanya:Ini
^;;\\s-*\n\\|^\n
menjadiIni
[ \t\n]*:\\([^:]+\\|$\\)
menjadisumber
rx
sintaksisnya, yang membuatnya lebih mudah untuk dipelihara. Imho, untuk kasus serupa, sintaks rx dengan sendirinya membuat elisp pengganti yang layak untuk perl python, ruby, dll. Terima kasih.Tidak, itu tidak memiliki regexp literal, tetapi banyak yang menemukan pcre2el sebagai alternatif yang bermanfaat.
Khusus menggunakannya dari elisp seperti ini:
sumber