¿Cómo puedo unir 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 realizo una búsqueda de películas con el nombre “Octubre rojo”, solo quiero hacer coincidir el título exacto (sin distinción entre mayúsculas y minúsculas) pero no con títulos como “La búsqueda del octubre rojo”. No estoy seguro de saber cómo hacerlo. ¿Nadie sabe?

¡Gracias!

Pruebe la siguiente expresión regular:

 ^Red October$ 

Por defecto, las expresiones regulares son sensibles a mayúsculas y minúsculas. El ^ marca el comienzo del texto coincidente y $ el final.

En general, y con la configuración predeterminada, ^ y $ anchors son una buena forma de garantizar que una expresión regular coincida con una cadena completa.

Algunas advertencias, sin embargo:

Si tienes alternancia en tu expresión regular, asegúrate de incluir tu expresión regular en un grupo que no sea de captura antes de rodearlo con ^ y $ :

 ^foo|bar$ 

es por supuesto diferente de

 ^(?:foo|bar)$ 

Además, ^ y $ pueden tomar un significado diferente (inicio / fin de línea en lugar de 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 lo tanto, hay otro conjunto de anclajes que garantiza que solo coinciden al principio / final de la cadena completa:

\A coincidencias 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 idiomas admiten estos anclajes, especialmente JavaScript.

Use los modificadores ^ y $ para indicar dónde se encuentra el patrón de expresiones regulares en relación con el inicio y el final de la cadena:

 Regex.Match("Red October", "^Red October$"); // pass Regex.Match("The Hunt for Red October", "^Red October$"); // fail 

Debe incluir su expresión regular en ^ (inicio de cadena) y $ (fin de cadena):

 ^Red October$ 

Sé que esto puede ser un poco tarde para responder a esto, pero tal vez sea útil para otra persona.

La manera más simple:

 var someString = "..."; var someRegex = "..."; var match = Regex.Match(someString , someRegex ); if(match.Success && match.Value.Length == someString.Length){ //pass } else { //fail } 

Lo siento, pero eso no está claro.

Por lo que leí, quieres hacer una comparación simple de cadenas. No necesitas expresiones regulares para eso.

 string myTest = "Red October"; bool isMatch = (myTest.ToLower() == "Red October".ToLower()); Console.WriteLine(isMatch); isMatch = (myTest.ToLower() == "The Hunt for Red October".ToLower()); 

Coincidencia de la cadena completa se puede hacer con ^ y $ como se dijo en las respuestas anteriores.

Para que la caja de expresiones regulares no sea sensible, puedes implementar un truco que involucre clases de caracteres. Muchas clases de personajes

 ^[Rr][Ee][Dd] [Oo][Cc][Tt][Oo][Bb][Ee][Rr]$ 

Puedes hacerlo como este Ejemplo si solo quiero capturar una vez la letra menos a en una cadena y se puede verificar con myRegex.IsMatch ()

^ [^ e] [e] {1} [^ e] $