最多两个换行符

问题描述

| 我有正则表达式:
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 />
标签之间有任意数量
&nbsp;
,它也应该工作

解决方法

首先,将连续3个或更多换行符的实例替换为
\"<br /><br />\"
。然后第二遍,将所有剩余的新行替换为
\"<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();
        }
    }
}
请享用!,这个怎么样?
  Regex regex = new Regex( \"((<br\\ />(\\s*)){3,})\" );
  string result = regex.Replace( commentText,\"\" );
,当它们之间仅由空格分隔时,请使用以下REGEX匹配两个或多个
<br />
(<br />\\s<br />\\s*)(<br />\\s*)*
我会将替换语法留给您。,我不知道C#正则表达式的风格,但这可能有效:
regex : /(\\n\\n?)\\n*/

replace : $1 or \\1