C# 如何找到所有CR+;LF&x27;什么在一条线上?

C# 如何找到所有CR+;LF&x27;什么在一条线上?,c#,.net,C#,.net,我试图用C#中的标记替换所有的carrage返回。我以为这会解决所有问题: StringBuilder sb = new StringBuilder(s); sb.Replace(System.Environment.NewLine, @"<br/>"); StringBuilder sb=新的StringBuilder; sb.替换(System.Environment.NewLine,@“”); 但显然不是。它似乎没有捕捉到CR+LF 如果Environment.NewLin

我试图用C#中的

标记替换所有的carrage返回。我以为这会解决所有问题:

StringBuilder sb = new StringBuilder(s);
sb.Replace(System.Environment.NewLine, @"<br/>");
StringBuilder sb=新的StringBuilder;
sb.替换(System.Environment.NewLine,@“
”);
但显然不是。它似乎没有捕捉到
CR+LF

如果
Environment.NewLine
是CR+LF,它很可能在Windows上运行,那么这将起作用。当然,它不会捕捉字符串实际上只包含换行符或只包含回车符的情况。也许你想要:

StringBuilder sb = new StringBuilder(s).Replace("\r\n", "<br/>")
                                       .Replace("\n", "<br/>")
                                       .Replace("\r", "<br/>");
StringBuilder sb=新的StringBuilder。替换(“\r\n”,“
”) .替换(“\n”和“
”) .替换(“\r”和“
”);

(请注意,对

使用逐字字符串文字没有任何意义,因为字符串中没有反斜杠,而且是一行。)

如果您确定要替换\r\n为什么不使用string.replace

s.replace("\r\n", "<br/>")
s.replace(“\r\n”和“
”)
通过此代码

input.Replace("\r\n", "\n").Replace("\r", "\n").Replace("\n", "\r\n")

您是否验证了
s
包含
\r\n
而不仅仅是
\n
系统环境。换行符将取决于执行环境。正如ChaosPandion所说,很可能你实际上只是在使用
\n
为什么你总是比我快30秒:(@JimSchubert-一定是思维识别软件之类的:)@Adel,这很可能是规则“有两种类型的程序员:优秀的程序员和那些不是Jon Skeet的。”
input.Replace("\r\n", "\n").Replace("\r", "\n").Replace("\n", "\r\n")