2013-06-13 3 views
0

Я думаю, ответ должен быть очевиден, но я не понимаю,Regex проблема точка (C# .NET Framework 4.0)

Regex reg = new Regex("a\r\n", RegexOptions.Singleline | RegexOptions.CultureInvariant); 
Console.WriteLine(reg.IsMatch(".*a.*")); // writes FALSE 

Почему это писать ложь? Я думал, что SingleLine разрешает точке соответствовать чему угодно, будь то \ r, \ n, \ r \ n, \ n \ r или что-то еще?

+3

Я думаю, что вы назад, шаблон должен быть в конструкторе 'Regex', у вас есть то, что вы хотите найти там. –

ответ

3

Вы назад, вы хотите поместить шаблон в конструктор Regex, а не то, что вы пытаетесь сопоставить. Попробуйте следующее:

Regex reg = new Regex(".*a.*", RegexOptions.Singleline | RegexOptions.CultureInvariant); 
Console.WriteLine(reg.IsMatch("a\r\n")); // writes TRUE 
+0

Omg Я не могу в это поверить ... вот что я бы назвал забывчивым. Спасибо, что указали это! Я собираюсь проверить его завтра – Toto

+0

Протестировано, подтверждая, что оно работает, отмечая это как ответ. – Toto

Смежные вопросы