C# 最多两次换行

C# 最多两次换行,c#,asp.net,html,regex,C#,Asp.net,Html,Regex,我有正则表达式: Comment = Comment.Replace("\n", "<br />"); 这应该转向: Hello<br /><br />This is my<br />Test<br /><br />Peanut<br /><br />Case 如果标签之间有任意数量的标签,它也应该可以工作。这个怎么样 Regex regex = new Regex( "((<b

我有正则表达式:

Comment = Comment.Replace("\n", "<br />");    
这应该转向:

Hello<br /><br />This is my<br />Test<br /><br />Peanut<br /><br />Case
如果标签之间有任意数量的标签,它也应该可以工作。这个怎么样

  Regex regex = new Regex( "((<br\ />(\s*)){3,})" );
  string result = regex.Replace( commentText, "" );

首先检查并用替换一行中3个或更多换行符的实例。然后进行第二次检查,并将所有剩余的新线替换为

下面是一个要演示的快速控制台应用程序

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();
        }
    }
}

享受吧

当两个或多个正则表达式仅由空格分隔时,请使用以下正则表达式匹配它们:

(<br />\s<br />\s*)(<br />\s*)*

我将把替换的语法留给您。

我不知道C正则表达式的味道,但这可能有用:

regex : /(\n\n?)\n*/

replace : $1 or \1

您要找的是\n还是?或者!我已经用匹配的替换了这些可能是我以前犯过的错误中最严重的一个。您将用“无”替换两个以上的任何实例。您需要将字符串.Empty替换为两个s。这将只替换3个或更多换行符的实例-您仍然需要另一个正则表达式来获取<3个换行符的实例。@Mark Whoops!绝对正确@道格,这不是目标吗?我以为他想留下一两行新词,但把三行或更多的新词替换成两行。这是最好的,但它甚至可以简化。Comment.Replace\\n{2,};注释。替换\\n;我试着用一个函数调用来实现它,但不幸的是,我对正则表达式已经不太在行了。@pickypg-同意您的更改使它更易于阅读。我已经更新了上面的代码-谢谢你的宝贵意见。这似乎比预期的要多!啊,我应该把我的问题表达得更好,应该是,2个连续的,而不是2个总数string@Tom-嗨,Tom,我用一个快速控制台应用程序更新了我的解决方案,这样你就可以看到这个解决方案是如何工作的了。+1但你的答案需要编辑才能摆脱这个问题。你还需要提到的是,这场比赛需要更换为。
regex : /(\n\n?)\n*/

replace : $1 or \1