La gran cantidad de barras invertidas que requieren mis expresiones regulares es bastante loca. ¿Elisp tiene literales regexp, por lo que puedo escribir algo como
rx"some\(regexp\)"
en lugar de
"some\\(regexp\\)"
elisp
regular-expressions
syntax
rana nariz
fuente
fuente
\\|
,\\(
, y\\)
. Desafortunadamente, en muchos temas esto no es visible. Puede anularfont-lock-regexp-grouping-backslash
yfont-lock-regexp-grouping-construct
hacer esto más distinto.Respuestas:
Una opción es usar la
rx
macro para construir sus expresiones usando sexps.Tu ejemplo se convierte
(rx "some" (group "regexp"))
Aquí hay un par de ejemplos más de la sección de comentarios en rx.el, para tener una idea de cómo
rx
funciona:Esto se
^;;\\s-*\n\\|^\n
convierteEsto se
[ \t\n]*:\\([^:]+\\|$\\)
conviertefuente
rx
sintaxis, lo que los hace más fáciles de mantener. En mi opinión, para casos similares, la sintaxis rx por sí misma hace que elisp sea un sustituto digno de perl python, ruby, etc. Gracias.No, no tiene literales regexp, pero muchos consideran que pcre2el es una alternativa útil.
Específicamente usándolo desde elisp así:
fuente