我有正则表达式:
Comment = Comment.Replace("\n", "<br />");
运行之后,我只希望最多有两次休息。例如,3个或更多<br />
将复合为<br /><br />
。这将阻止人们留下巨大的空白。
有人能告诉我这是怎么做到的吗?
Hello
This is my
Test
Peanut
Case
这应该转向:
Hello<br /><br />This is my<br />Test<br /><br />Peanut<br /><br />Case
如果
代码
<br />
个{{1}},它也应该有效
答案 0 :(得分:3)
首先使用"<br /><br />"
连续替换3行或更多新行的实例。然后进行第二遍,并用"<br />"
以下是一个快速控制台应用程序来演示。
using System;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string content = "Hello\r\n\r\n\r\nThis is my\r\nTest\r\n\r\n\r\n\r\n\r\n\r\nPeanut\r\n\r\nCase\r\n\r\n\r\n\r\n\r\n";
Console.WriteLine("Here is the unmodified string:");
Console.WriteLine();
Console.WriteLine(content);
content = Regex.Replace(content, @"(\r\n){2,}", "<br /><br />");
content = Regex.Replace(content, @"\r\n", "<br />");
Console.WriteLine("Here is the modified string:");
Console.WriteLine();
Console.WriteLine(content);
Console.ReadLine();
}
}
}
享受!
答案 1 :(得分:1)
这个怎么样?
Regex regex = new Regex( "((<br\ />(\s*)){3,})" );
string result = regex.Replace( commentText, "" );
答案 2 :(得分:1)
当它们仅由空格分隔时,使用以下REGEX匹配两个或更多<br />
:
(<br />\s<br />\s*)(<br />\s*)*
我会将替换语法留给您。
答案 3 :(得分:0)
我不知道C#正则表达式的味道,但这可能有效:
regex : /(\n\n?)\n*/
replace : $1 or \1