Pregunta:
La gran cantidad de barras invertidas que requieren mis expresiones regulares es bastante loca. ¿Elisp tiene literales regexp, entonces puedo escribir algo como
rx"some\(regexp\)"
en vez de
"some\\(regexp\\)"
Respuesta:
Una opción es usar la macro rx
para construir sus expresiones usando sexps.
Su ejemplo se convierte en (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 funciona rx
:
Este ^;;\\s-*\n\\|^\n
convierte en
(rx (or (and line-start ";;" (0+ space) ?\n)
(and line-start ?\n)))
Este [ \t\n]*:\\([^:]+\\|$\\)
convierte en
(rx (and (zero-or-more (in " \t\n")) ":"
(submatch (or line-end (one-or-more (not (any ?:)))))))