为什么.NET正则表达式不将\n视为行结束符?
示例代码:
为什么正则表达式匹配
更新: 我不认为使用多行模式是一个好的解决方案,也就是说,我想要验证登录以仅匹配指定字符,并且它必须是单行。如果我改变构造函数为MultiLine选项,则ab1、ab2、ab3和ab6都匹配该表达式,而ab4和ab5不匹配。
示例代码:
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选项,则ab1、ab2、ab3和ab6都匹配该表达式,而ab4和ab5不匹配。