En general, y con la configuración predeterminada, ^
y $
anclas son una buena manera de asegurando que una expresión regular coincida con una cadena completa.
algunas advertencias, sin embargo:
Si tiene alternancia en su expresión regular, asegúrese de incluir su expresión regular en un grupo sin fines de captura antes de que lo rodea con ^
y $
:
^foo|bar$
es por supuesto diferente de
^(?:foo|bar)$
también, ^
y $
lata asume un significado diferente (inicio/final de línea en lugar del inicio/fin de cadena) si se establecen ciertas 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 tanto, existe otro conjunto de anclajes que están garantizados para solo al inicio/final de la cadena completa:
\A
partidos en el inicio de la cadena.
\Z
coincide al final de la cadena o antes de un salto de línea final.
\z
coincide en el final de la cadena.
Pero no todos los idiomas admiten estos anclajes, especialmente JavaScript.
¿Por qué necesita una expresión regular para algo con lo que un simple 'string.Contains' funcionará? – Oded
La razón por la que necesito usar una expresión regular es que la estoy usando para una búsqueda en MongoDB y necesito que sea insensible a las mayúsculas y minúsculas, lo cual solo se puede hacer con una expresión regular – Micah
¿Por qué no convertir (al vuelo) datos de datos a minúsculas y minúsculas de usuario para buscar? – greenoldman