如何在字符串中找到所有CR + LF?

时间:2012-04-23 15:33:23

标签: c# .net

我正在尝试用C#中的<br/>标记替换所有回车符。我认为这会照顾好一切:

StringBuilder sb = new StringBuilder(s);
sb.Replace(System.Environment.NewLine, @"<br/>");

但显然不是。它似乎没有抓住CR+LF

4 个答案:

答案 0 :(得分:9)

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

StringBuilder sb = new StringBuilder(s).Replace("\r\n", "<br/>")
                                       .Replace("\n", "<br/>")
                                       .Replace("\r", "<br/>");

(请注意,对"<br/>"使用逐字字符串文字是没有意义的,因为字符串中没有反斜杠,而且它只是一行。)

答案 1 :(得分:3)

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

s.replace("\r\n", "<br/>")

答案 2 :(得分:3)

通过此代码

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

答案 3 :(得分:2)

string ReplaceNewlines(string blockOfText, string replaceWith)
{
    return blockOfText.Replace("\r\n", replaceWith).Replace("\n", replaceWith).Replace("\r", replaceWith);
}