把字符串,用其中的;(分号)分成多个子串。
本来很简单,用ty.Split(';')分就行了,但我发现比如一字符串 ????;????,其中????代表未知字符,未知道字符中可能存在;号,这类;分号是用“”,或<>,或‘’,或()包含起来的,不参加分隔,该怎么处理这种情况。

解决方案 »

  1.   

    showMSG("<div class='Desc'><u onclick=\"test('张三','111');\" style='cursor:hand'>[张三]</u>加入<u onclick=\"list('my'+this.innerHTML);\" style='cursor:hand'>同学会</u></div>");比如这一句,应该是一句话,但用;去处理,里面的两个分号就会被处理了。
      

  2.   

    简单的说一下,aa(bb<cc;>dd<ee;>);aa(bb<cc;>dd<ee;>);aa(bb<cc;>dd<ee;>)
    我要把这个分开为三个,每个为aa(bb<cc;>dd<ee;>)  当然其中的aa,bb,cc,dd,ee可能为其它字符。
      

  3.   

    任意一字符串,将其用其中的分号分隔为多个子字串,但处于()或''或“”或<>中的分号不参与分隔。
      

  4.   

    简单的说一下,aa(bb<cc;>dd<ee;>);aa(bb<cc;>dd<ee;>);aa(bb<cc;>dd<ee;>)
    -----------------
    你这个我可以看出结果,但之前的例子,我还是不知道应该是什么样的结果
      

  5.   

    -_-#,总觉得不一样...string test = "aa(bb<cc;>dd<ee;>);aa(bb<cc;>dd<ee;>);aa(bb<cc;>dd<ee;>)";
    string[] result = Regex.Split(test, @"(?<=(?:^|[)>])[^<>()]*);(?=[^()<>]*(?:[(<]|$))");
    foreach (string s in result)
    {
        richTextBox2.Text += s + "\n";
    }
      

  6.   

    我觉得这个用正则更麻烦,我提个建议:使用split,然后逐句判断是否存在成对出现的符号,如果出现不成对的,前后合并