3

我有一个字符串如下:

\r\n \r\n 一些文字 blahblah \r\n \r\n \r\n \r\n 一些其他文字 \r\n \r\n \r\n \r\n blah blah blah \ r\n

我想用一个<br>标签替换多个换行符的任何实例,并将任何单个 \r\n 替换为<br>

所以上面的文字应该是这样的:

<br>  Some text blahblah <br><br> Some other text <br><br> blah blah blah <br>

我已经尝试过了,但它没有考虑到: \r\n \r\n 之间的空格

Regex.Replace(text, @"[\r\n]+", "<br>")
4

3 回答 3

0

也许试试这个(不是正则表达式,但有效:)),这将支持奇数/偶数,并且如果缺少\r\n标签,则会在开始和结束时添加标签。\r\n

 var result = string.Concat(text.Split(new char[] { '\r', '\n' })
                .Where(l => !string.IsNullOrWhiteSpace(l))
                .Select(s => string.Format("<br> {0} <br>",s)));

结果:

\r\n \r\n Some text blahblah \r\n \r\n \r\n \r\n Some other text \r\n \r\n \r\n \r\n blah blah blah \r\n
"<br> Some text blahblah <br><br> Some other text <br><br> blah blah blah <br>"

 \r\n \r\n Some text \r\n Some other \r\n \r\n \r\n  blah blah blah 
"<br> Some text <br><br> Some other <br><br> blah blah blah <br>"
于 2013-03-08T10:11:50.577 回答
0

这个怎么样:

Regex.Replace(text, @"([\r\n]\s*)+", "<br>")

或者,如果您不希望它在换行符运行后占用空间:

Regex.Replace(text, @"[\r\n](\s*[\r\n])+", "<br>")
于 2013-03-08T10:13:00.510 回答
-2

这应该做的工作

string myString = "\r\n \r\n Some text blahblah \r\n \r\n \r\n \r\n Some other text \r\n \r\n \r\n \r\n blah blah blah \r\n";
myString = Regex.Replace(myString, @"(?:\r\n *){1,2} *", "<br>");

会产生

<br>Some text blahblah <br><br>Some other text <br><br>blah blah blah <br>
于 2013-03-08T10:12:58.007 回答