请教下关于正则表达式\n和\r的区别
刚上班时无聊玩了玩正则..发现一个\n和\r的问题
请看以下这2张图
这个文本一共有5处换行(现在都不知道喊换行还是回车)..
出来的结果太古怪了..到底啥是\n(换行是匹配什么)..\r(回车匹配的又是什么)
诚心求解!
[最优解释]
先看代码再解释
string test = @"
1f2dsa1f3dsa
456
fdsaf1ds2af1dsa1fds2a3f123sda1fdsa
";
Regex regN = new Regex(@"[^\n]+");
Regex regR = new Regex(@"[^\r]+");
MatchCollection mc = regN.Matches(test);
richTextBox2.Text += "[^\\n]+匹配结果:\n";
foreach (Match m in mc)
{
richTextBox2.Text += "-Start-" + m.Value + "-End-\n";
}
richTextBox2.Text += "==========华丽的分割线==========\n";
richTextBox2.Text += "[^\\r]+匹配结果:\n";
mc = regR.Matches(test);
foreach (Match m in mc)
{
richTextBox2.Text += "-Start-" + m.Value + "-End-\n";
}
/*-----输出-----
[^\n]+匹配结果:
-Start-
-End-
-Start-
-End-
-Start-1f2dsa1f3dsa
-End-
-Start-
-End-
-Start-456
-End-
-Start-
-End-
-Start-fdsaf1ds2af1dsa1fds2a3f123sda1fdsa
-End-
==========华丽的分割线==========
[^\r]+匹配结果:
-Start-
-End-
-Start-
1f2dsa1f3dsa-End-
-Start-
-End-
-Start-
456-End-
-Start-
-End-
-Start-
fdsaf1ds2af1dsa1fds2a3f123sda1fdsa-End-
-Start-
-End-
*/