En general, y con la configuración predeterminada, ^
y $
los anclajes son una buena manera de asegurar que una expresión regular coincide con una cadena completa.
Sin embargo, algunas advertencias:
Si tiene alternancia en su expresión regular, asegúrese de encerrar su expresión regular en un grupo que no captura antes de rodearla con ^
y $
:
^foo|bar$
es por supuesto diferente de
^(?:foo|bar)$
Además, ^
y $
puede adquirir un significado diferente (inicio / final de línea en lugar de inicio / final de cadena ) si se establecen determinadas opciones. En los editores de texto que admiten expresiones regulares, este suele ser el comportamiento predeterminado. En algunos idiomas, especialmente Ruby, este comportamiento ni siquiera se puede desactivar.
Por lo tanto, hay otro conjunto de anclajes que están garantizados para coincidir solo al principio / final de toda la cadena:
\A
coincide con el comienzo de la cadena.
\Z
coincide con el final de la cadena o antes de un salto de línea final.
\z
coincide con el final de la cadena.
Pero no todos los lenguajes admiten estos anclajes, especialmente JavaScript.
string.Contains
?