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 replace muliple linebreaks with <br> tag

也许试试这个(不是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>