2010-11-23 12 views
5

Quiero ser capaz de hacer coincidir una cadena completa (de ahí los límites de las palabras) con un patrón "ABC" ("ABC" solo se utiliza por conveniencia, no quiero verificar la igualdad con una cadena fija), las nuevas líneas son importantes para mí. Sin embargo, parece que se ignora una sola "\ n" cuando se coloca al final de una cadena. ¿Hay algún problema con mi patrón?¿Cómo hacer coincidir una cadena, ignorando la nueva línea final?

Regex r = new Regex(@"^ABC$"); 
string[] strings = 
{ 
    "ABC",//True 
    "ABC\n",//True: But, I want it to say false. 
    "ABC\n\n",//False 
    "\nABC",//False 
    "ABC\r",//False 
    "ABC\r\n",//False 
    "ABC\n\r"//False 
}; 
foreach(string s in strings) 
{ 
    Console.WriteLine(r.IsMatch(s)); 
} 

Respuesta

4

Prueba este (no probado):

Regex r = new Regex(@"\AABC\z"); 

\A = ancla para inicio de cadena
\z = anclaje para el extremo de cadena
^ = Ancla por principio de la línea
$ = Ancla para el final de la línea

+0

Gracias. Encontrado esto después de su respuesta: http://msdn.microsoft.com/en-us/library/h5181w5w(v=VS.100).aspx – blizpasta

+0

wow agradable de saber. +1 –

Cuestiones relacionadas