2010-01-10 22 views
7

Soy nuevo en expresiones regulares así que lo siento si esta es una pregunta realmente novato.¿Cómo comprobar si una expresión Regex coincide con una cadena completa en C#?

Tengo una expresión de expresiones regulares ... Lo que quiero hacer es verificar si una cadena coincide con la expresión de expresiones regulares en su totalidad sin que la expresión de expresiones regulares coincida con ningún subconjunto de la cadena.

Por ejemplo ...

Si mi expresión expresiones regulares está buscando un partido de \ s Un \ s *, debe devolver un partido si la cadena se está comparando a es "A", pero si se compara con la cadena "AB", no debería devolver una coincidencia.

¿Alguna ayuda sería apreciada? Codigo en C#.

+1

Puede probar un probador de expresiones regulares en línea en http://regexpal.com/ El patrón más simple de C# regex debe estar bien para probarse correctamente. –

Respuesta

16

que normalmente se utiliza al final extremo inicial ancla ^ y $ respecitvely:

^\s*A*\s*$ 

Tenga en cuenta que, si el motor de expresiones regulares es compatible con multi-línea, esto puede también capturar cadenas divididas en varias líneas, siempre como una de esas líneas coincide con la expresión regular (ya que ^ luego ancla después de cualquier nueva línea o inicio de cadena y $ antes de cualquier nueva línea o final de cadena). Si solo está ejecutando la expresión regular en una sola línea, eso no será un problema.

Si desea asegurarse de que una entrada multi-línea es sólo una sola línea que consta de su patrón, puede utilizar \A y \Z si es compatible - que significan inicio y final de la cadena independientemente de los saltos de línea.

+0

Gracias ... eso fue todo. –

Cuestiones relacionadas