场景:已知Html页面,存在重复的换行符,如下
<br />
正则表达式<br /><br /><br />
正则表达式<br /><br />
正则表达式<br />问题:1、能否通过正则表达式将连续的换行符(>=1个<br/>),替换为1个
<br />
正则表达式<br />
正则表达式<br />
正则表达式<br />2、若不能通过正则表达式实现,有什么思路可达到上述要求3、感慨下:正则的语法好难记,1,2个月不用就忘光了...老咯

解决方案 »

  1.   

    首先把<br />替换成某个字符,比如&,然后split('&'),数组中的内容再拼接起来,没有内容的不加,拼接 的时候加上他输字符,比如&,然后再全部替换为<br />
      

  2.   

                string str = @"<br />
    正则表达式<br /><br /><br />
    正则表达式<br /><br />
    正则表达式<br />";            while (str.IndexOf("<br /><br />") > 0)
                {
                    str = str.Replace("<br /><br />", "<br />");
                }
                Console.WriteLine(str);
      

  3.   

                string str = @"<br />
    正则表达式<br /><br /><br />
    正则表达式<br /><br />
    正则表达式<br />";
                string strReg = @"(?is)(?<=<br />)(<br />)+";            Regex reg = new Regex(strReg);
                Console.WriteLine(reg.Replace(str, ""));
      

  4.   

    Regex.Replace(str,"(?is)(\s*<br />\s*){2,}","<br />");
      

  5.   

    (?is)(\s*<br />\s*){2,}
    (?is) 内嵌模式。不解释了,就是i模式和s模式这个正则就是找到2个以上<br />的串 然后替换成<br />