O grande número de barras invertidas que meus regexps exigem é bem louco. O elisp possui literais regexp, para que eu possa escrever algo como
rx"some\(regexp\)"
ao invés de
"some\\(regexp\\)"
elisp
regular-expressions
syntax
nosefrog
fonte
fonte
\\|
,\\(
, e\\)
. Infelizmente, em muitos temas isso não é visível. Você pode substituirfont-lock-regexp-grouping-backslash
efont-lock-regexp-grouping-construct
tornar isso mais distinto.Respostas:
Uma opção é usar a
rx
macro para construir suas expressões usando sexps.Seu exemplo se torna
(rx "some" (group "regexp"))
Aqui estão mais alguns exemplos da seção de comentários em rx.el, para ter uma idéia de como
rx
funciona:Isso
^;;\\s-*\n\\|^\n
se tornaIsso
[ \t\n]*:\\([^:]+\\|$\\)
se tornafonte
rx
sintaxe, o que os torna mais fáceis de manter. Em casos semelhantes, a sintaxe rx por si só faz do elisp um substituto valioso para perl python, ruby, etc. Obrigado.Não, ele não possui literais regexp, mas muitos consideram o pcre2el uma alternativa útil.
Especificamente usando-o da elisp assim:
fonte