Почему регулярное выражение .NET не обрабатывает \ n как символ конца строки?
Пример кода:
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
Почему регулярное выражение соответствует ab2\n
?
Обновление:
Я не думаю, что Multiline является хорошим решением, то есть я хочу проверить логин, чтобы он совпадал только с указанными символами, и он должен быть однострочным Если я изменяю конструктор для параметра MultiLine, ab1, ab2, ab3 и ab6 соответствуют выражению, ab4 и ab5 не соответствуют ему.