2010-11-23 16 views
5

Bir "dize" ("ABC") sadece bir kalıpla ("sınır" kelimesini) bir kalıpla eşleştirebilmek istiyorum ("ABC" sadece kolaylık sağlamak için kullanılır, sabit bir dizeyle eşitliği kontrol etmek istemiyorum), yeni hatlar benim için önemli. Bununla birlikte, bir dizenin sonuna koyulduğunda tek bir "\ n" ifadesinin yok sayıldığı görülür. Benim desenimde bir sorun mu var?Dizgi, bitiş çizgisini göz ardı ederek nasıl eşleştirilir?

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

cevap

4

bu deneyin (test):

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

\A = Çapa dize başlangıcı için
\z = Çapa dize sonu için
^ = Çapa hattının başlangıcı için
$ = Satır sonu için çapa

+0

Teşekkürler. Cevabınızdan sonra bunu buldum: http://msdn.microsoft.com/en-us/library/h5181w5w(v=VS.100).aspx – blizpasta

+0

bilmesi güzel. +1 –

İlgili konular