[c#] ¿Cómo puedo unir una cadena completa con una expresión regular?


Answers

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.

Question

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!




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] $




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());



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

^Red October$



Links



Tags

c# c#   .net .net   regex