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-backslashyfont-lock-regexp-grouping-constructhacer esto más distinto.Respuestas:
Una opción es usar la
rxmacro 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
rxfunciona:Esto se
^;;\\s-*\n\\|^\nconvierteEsto se
[ \t\n]*:\\([^:]+\\|$\\)conviertefuente
rxsintaxis, 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