.NET regex क्यों नहीं है लाइन वर्ण के अंत के रूप में \ n?.NET की रेगेक्स क्लास और न्यूलाइन
नमूना कोड:
string[] words = new string[] { "ab1", "ab2\n", "ab3\n\n", "ab4\r", "ab5\r\n", "ab6\n\r" };
Regex regex = new Regex("^[a-z0-9]+$");
foreach (var word in words)
{
Console.WriteLine("{0} - {1}", word, regex.IsMatch(word));
}
और यह प्रतिक्रिया मैं है:
ab1 - True
ab2
- True
ab3
- False
- False
ab5
- False
ab6
- False
क्यों regex मैच ab2\n
?
अद्यतन: मुझे नहीं लगता कि Multiline एक अच्छा समाधान है, कि है, मैं लॉगिन केवल निर्दिष्ट वर्णों का मिलान करने मान्य करने के लिए चाहते हैं, और यह एक पंक्ति होना चाहिए। यदि मैं मल्टीलाइन विकल्प ab1, ab2, ab3 और ab6 के लिए कन्स्ट्रक्टर बदलता हूं तो अभिव्यक्ति से मेल खाता है, ab4 और ab5 इसे मेल नहीं खाते हैं।
क्यों ab4 उत्पादन में दिखाई नहीं देता? –
मुझे लगता है कि यह अकेले \ r की वजह से है - यह कंसोल – empi