12312312312312<br/> 
1231asdfasdf<br/>   <br/><br/>
aSVdikagisdgviasdgi<br/><br/><br/><br/><br/>
asbgdiahsod<br/><br/><br/>我先描述下问题,比如很多个段落或者字符串,然后有很多<br/>,我想把上边的这些重复的br
都变成只有一个。怎么做呢?用c#截取字符串的方式

解决方案 »

  1.   


                string str = @"12312312312312<br/>  
    1231asdfasdf<br/> <br/><br/>
    aSVdikagisdgviasdgi<br/><br/><br/><br/><br/>
    asbgdiahsod<br/><br/><br/>";
                string result = Regex.Replace(str,@"(?:<br/>[^\r\n]*)+","<br/>");
                Console.WriteLine(result);
    /*
    12312312312312<br/>
    1231asdfasdf<br/>
    aSVdikagisdgviasdgi<br/>
    asbgdiahsod<br/>*/
      

  2.   

    改下之前的正则            string str = @"123123<br/>12312312<br/>  
    1231asdfasdf<br/> <br/><br/>
    aSVdikagisdgviasdgi<br/><br/><br/><br/><br/>
    asbgdiahsod<br/><br/><br/>";
                string result = Regex.Replace(str,@"(?m)(?:<br/>\s*)+$","<br/>");
                Console.WriteLine(result);
    /*
    123123<br/>12312312<br/>
    1231asdfasdf<br/>
    aSVdikagisdgviasdgi<br/>
    asbgdiahsod<br/>*/
      

  3.   


    这个是不错的方法
    然后就是Replace 方法了
    string str = "12312312312312<br/>  " +
                          "1231asdfasdf<br/> <br/><br/>" +
                          "aSVdikagisdgviasdgi<br/><br/><br/><br/><br/>" +
                          "asbgdiahsod<br/><br/><br/>";
    string result = str.Replace("<br/>", "");
      

  4.   

    string str = "12312312312312<br/>  " +
                          "1231asdfasdf<br/> <br/><br/>" +
                          "aSVdikagisdgviasdgi<br/><br/><br/><br/><br/>" +
                          "asbgdiahsod<br/><br/><br/>";string strarr=str.split(str,"<br/>");
    ......
    算一个吧
      

  5.   

    string strarr=str.split(str,"<br/>");
    ==>
    string[] strarr=str.split(str,"<br/>");
      

  6.   


    string str = @"12312312312312<br/>  
    1231asdfasdf<br/> <br/><br/>
    aSVdikagisdgviasdgi<br/><br/><br/><br/><br/>
    asbgdiahsod<br/><br/><br/>";
    while(str.Trim(" ") contains "<br/><br/>" )
      {
        string result=str.Replayce("<br/><br/>" ,"<br>")
      }  
      

  7.   

    帅哥们,就是没法把这个段分开,字符串就是一个整的,你们怎么知道第一段是
    "12312312312312<br/> "
    第二段是"1231asdfasdf<br/> <br/><br/>",我会告诉你获取到的string s=contents,但是contents里的内容你并不知道,有多长,有几段,所以你们怎么自己就给段分了。
      

  8.   

    contents是哪里来的?textbox的多行模式?
    不同浏览器当按enter键的时候\r\n不一样。
    我上面写的那个正则(?m)多行模式,也就是匹配每一行中以<br/>(多个或一个)结尾的行,然后进行替换。或者你根据\r\n拆分每一行,
    然后循环判断结尾是否是<br/>标签或是空格,如果是空格继续循环进来,如果结尾不是空格或<br/>标签的话就可以忽略这一行不用进行替换。
    这种问题正则处理比较方便。
      

  9.   

    5楼方法不行,因为有的<br>之间也有空格,用trim去不掉
      

  10.   


    static void Main(string[] args)
            {
                string str = "12312312312312<br/>1231asdfasdf<br/><br/><br/>aSVdikagisdgviasdgi<br/><br/><br/><br/><br/>asbgdiahsod<br/><br/><br/>";
                string[] arrayStrs = str.Split(new string[] { "<br/>" }, StringSplitOptions.RemoveEmptyEntries);
                string strFormat = string.Empty;
                for (int i = 0; i < arrayStrs.Length; i++)
                {
                        strFormat = strFormat + arrayStrs[i] + "<br/>";
                }
                if (strFormat != String.Empty)
                {
                    strFormat = strFormat.Substring(0, strFormat.Length - 5);
                }
                Console.WriteLine(strFormat);
                Console.ReadLine();
            }
      

  11.   

    7楼的方法也是可行的.static void Main(string[] args)
            {
                string str = "12312312312312<br/>1231asdfasdf<br/><br/><br/>aSVdikagisdgviasdgi<br/><br/><br/><br/><br/>asbgdiahsod<br/><br/><br/>";
                while (str.Contains("<br/><br/>"))
                {
                    str = str.Replace("<br/><br/>", "<br/>");
                }
                Console.WriteLine(str);
                Console.ReadLine();
            }
    正则表达式也是一个好办法,但是俺不会啊.