Estoy tratando de construir una expresión regular que coincida con los símbolos, es decir, cosas como nombres de funciones y similares, de acuerdo con la configuración actual del modo principal (se llama tabla de sintaxis si no recuerdo mal). Después de un poco de investigación, he encontrado estas expresiones regulares útiles:
\_<
coincide con el comienzo de un símbolo\_>
coincide con el final de un símbolo
Ahora creo que necesito descubrir cómo representar el carácter constituyente del símbolo. Tenemos \w
caracteres que constituyen las palabras, pero no puedo encontrar nada para los símbolos. Regexp para coincidir con los símbolos debería ser algo así (suponiendo que \s
coincida con los caracteres que constituyen el símbolo):
\_<\s+\_>
¿Me estoy perdiendo de algo? ¿Cómo hacer coincidir los símbolos?
Tenga en cuenta que la coincidencia de palabras no funciona para mí. Un ejemplo trivial es algo así como foo-bar
un símbolo en el modo Emacs Lisp, pero no una palabra (porque -
no es un carácter constitutivo de la palabra).
\s
significa realmente, ya que es completamente diferente a tu suposición.
\s
tenía algún significado en las expresiones regulares de Emacs, simplemente elegí ese símbolo, por ejemplo.
(re-search-forward "\\_<\\(?:\\sw\\|\\s_\\)+\\_>" nil t)
. Funciona, pero me pregunto si hay un camino más corto.