Regex replace muliple linebreaks with <br> tag
本文关键字:br gt tag replace lt linebreaks with Regex muliple | 更新日期: 2023-09-27 18:02:50
我有一个字符串如下:
'r'n 'r'n一些文本blahblah 'r'n 'r'n 'r'n 'r'n一些其他文本'r'n 'r'n 'r'n'r'n 'r'n 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>")
也许试试这个(不是Regex,但工作:)),这将支持奇数/偶数'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>"
如何:
Regex.Replace(text, @"(['r'n]'s*)+", "<br>")
如果你不想让它占用换行后的空间,也可以这样:
Regex.Replace(text, @"['r'n]('s*['r'n])+", "<br>")
应该可以了
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>