2010-11-23 10 views
5

मैं एक पैटर्न "एबीसी" ("एबीसी" के खिलाफ एक संपूर्ण स्ट्रिंग (इसलिए शब्द सीमाएं) से मिलान करने में सक्षम होना चाहता हूं, बस सुविधा के लिए उपयोग किया जाता है, मैं एक निश्चित स्ट्रिंग के साथ समानता की जांच नहीं करना चाहता), इसलिए न्यूलाइन मेरे लिए महत्वपूर्ण हैं। हालांकि ऐसा लगता है कि एक स्ट्रिंग के अंत में डाला जाने वाला एक "\ n" अनदेखा किया जाता है। क्या मेरे पैटर्न में कुछ गड़बड़ है?एक नई स्ट्रिंग को अनदेखा करते हुए स्ट्रिंग से कैसे मिलान करें?

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

उत्तर

4

इस प्रयास करें (परीक्षण नहीं):

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

\A = एंकर स्ट्रिंग की शुरुआत के लिए
\z = एंकर स्ट्रिंग के अंत के लिए
^ = एंकर लाइन की शुरुआत के लिए
$ = लाइन

+0

धन्यवाद के अंत के लिए एंकर। आपके उत्तर के बाद यह पाया: http://msdn.microsoft.com/en-us/library/h5181w5w(v=VS.100).aspx – blizpasta

+0

वाह जानना अच्छा है। +1 –

संबंधित मुद्दे