4

<br/>我正在尝试用C# 中的标签替换所有回车。我认为这会解决所有问题:

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

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

4

4 回答 4

9

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

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

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

于 2012-04-23T15:36:31.397 回答
3

By this code

input.Replace("\r\n", "\n").Replace("\r", "\n").Replace("\n", "\r\n")
于 2012-04-23T15:39:24.983 回答
3

如果你确定你会替换 \r\n 为什么不直接使用 string.replace?

s.replace("\r\n", "<br/>")
于 2012-04-23T15:36:50.380 回答
2
string ReplaceNewlines(string blockOfText, string replaceWith)
{
    return blockOfText.Replace("\r\n", replaceWith).Replace("\n", replaceWith).Replace("\r", replaceWith);
}
于 2012-04-23T15:37:09.583 回答