我正在用标签替换所有出现\n的内容<BR>,但由于某种原因,输入的文本连续多个\n,所以我需要将它们组合起来.
基本上,如果一起出现超过1 \n,则只用一个<BR>标签替换它.
有人可以帮我弄这个吗?
Luk*_*keH 23
这将用一个替换任何car-returns(\r)和/或换行符(\n)序列<br />:
string formatted = Regex.Replace(original, @"[\r\n]+", "<br />");
Run Code Online (Sandbox Code Playgroud)
如果您只想替换两个或更多项的序列,那么简单的答案是使用{2,}量词(意思是"至少两次重复")而不是+(这意味着"至少一次重复"):
string formatted = Regex.Replace(original, @"[\r\n]{2,}", "<br />");
Run Code Online (Sandbox Code Playgroud)
请注意,上面的表达式会将常见的CR + LF组合视为两个项目的序列.您可能希望将CR + LF视为单个项目,在这种情况下,表达式会变得稍微复杂一些:
string formatted = Regex.Replace(original, @"(?:\r\n|\r(?!\n)|(?<!\r)\n){2,}", "<br />");
Run Code Online (Sandbox Code Playgroud)