¿Cómo hago coincidir una cadena completa con una expresión regular?
Necesito una expresión regular que solo encuentre coincidencias donde toda la cadena coincida con mi consulta.
Por ejemplo, si hago una búsqueda de películas con el nombre "Octubre Rojo", solo quiero encontrar coincidencias con ese título exacto (no distingue entre mayúsculas y minúsculas), pero no con títulos como "La caza del Octubre Rojo". No estoy muy seguro de saber cómo hacer esto. ¿Nadie sabe?
¡Gracias!
Pruebe la siguiente expresión regular:
^Red October$
De forma predeterminada, las expresiones regulares distinguen entre mayúsculas y minúsculas. Marca ^
el inicio del texto coincidente y $
el final.
Generalmente, y con la configuración predeterminada, ^
los $
anclajes son una buena forma de garantizar que una expresión regular coincida 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 capture antes de rodearla con ^
y $
:
^foo|bar$
por supuesto es diferente de
^(?:foo|bar)$
Además, ^
y $
puede adquirir un significado diferente (inicio/fin de línea en lugar de inicio/fin de cadena ) si se configuran ciertas opciones. En los editores de texto que admiten expresiones regulares, este suele ser el comportamiento predeterminado. En algunos lenguajes, especialmente Ruby, este comportamiento ni siquiera se puede desactivar.
Por lo tanto, hay otro conjunto de anclajes que se garantiza que solo coincidirán al principio/final de toda la cadena:
\A
coincide al comienzo de la cadena.
\Z
coincide al final de la cadena o antes de un salto de línea final.
\z
coincide al final de la cadena.
Pero no todos los lenguajes admiten estos anclajes, sobre todo JavaScript.
Sé que puede que sea un poco tarde para responder esto, pero tal vez le resulte útil a alguien más.
La forma más sencilla:
var someString = "...";
var someRegex = "...";
var match = Regex.Match(someString , someRegex );
if(match.Success && match.Value.Length == someString.Length){
//pass
} else {
//fail
}