El manual describe los caracteres especiales regexp ^
y $
. Como en la mayoría de los dialectos de expresiones regulares que conozco, parecen coincidir con el inicio o el final de una cadena. Sin embargo, también he descubierto que hay `
y '
personajes disponibles. Según la explicación que se encuentra aquí , también parecen coincidir con el inicio o el final de las cadenas. ¿Podría alguien explicar la diferencia entre estos caracteres especiales, con un ejemplo y una recomendación sobre cuándo usarlos?
Cuando miro el valor de auto-mode-alist
, parece que se usan indistintamente para coincidir con el final de las cadenas:
(...
("\\.scss\\'" . scss-mode)
("\\.ya?ml$" . yaml-mode)
...)
elisp
regular-expressions
Jackson
fuente
fuente
$
así, apuestan por nombres de archivo que no contienen líneas nuevas. Esto normalmente será una suposición (muy) segura, pero no está garantizada .\\'
Por lo tanto, el uso es la mejor práctica.Respuestas:
Su cadena puede tener un carácter de nueva línea incrustado, en cuyo caso
\'
coincide con el final de la cadena pero$
coincide justo antes del carácter de nueva línea.Para citar el manual de Elisp, nodo Regexp Special :
Del mismo modo,
\`
coincide con el comienzo de la cadena, pero^
coincide justo después del carácter de nueva línea. De nuevo, el manual:Entonces, para las cadenas que generalmente desea usar
\`
y\'
, especialmente si su código no puede saber de antemano si puede haber caracteres de nueva línea en la cadena. Para el texto en un búfer, normalmente usa^
y$
.fuente
^
y hacer$
coincidir el inicio y el final de las líneas .\`
y\'
coincide con el inicio y el final de toda la cadena .fuente
Los caracteres especiales son:
. * + ? ^ $ \ [
.Entre paréntesis
[]
, los siguientes también son especiales:] - ^
Muchos caracteres, entre los que se incluyen la barra invertida 'y la comilla simple', se vuelven especiales cuando siguen una barra invertida. Ver aquí para más detalles.
Hay una diferencia entre
beginning of string
ybeginning of each line in the string
.Cortesía de Ergoemacs. Puedes leer más aquí
fuente