s = "...<tr>...12345...</tr>..."...为数目不定的任意字符, 可能含有多个 <tr> 或 </tr>
要求匹配到12345, 以<tr>开始  </tr>结束的最小匹配
正则表达怎么写?

解决方案 »

  1.   

    <tr>和</tr>之间必须包含12345?还是什么意思?
      

  2.   

    本帖最后由 lxcnn 于 2011-04-06 22:54:31 编辑
      

  3.   

    不会就是这个吧、
                string s = "<tr>...<tr>...12345...</tr>...</tr>";
                Regex reg = new Regex("(?i)<tr>((?!<tr>).)*?12345.*?</tr>");
                Console.WriteLine(reg.Match(s).Value);
      

  4.   

    感谢楼上回复!有简单的写法吗?如果是...为数目不定的任意字符s = "...<tr>...12345...56789...54321...</tr>..."匹配 <tr>...12345...56789...54321...</tr>  (<tr>只出现一次)
    能有简洁的写法吗?
      

  5.   


    <tr>只出现一次的话
    (?is)<tr>.*?</tr>
      

  6.   

    因为<tr>只出现一次,所以也没必要用MatchCollection 了,直接用Match 就行了string s = "...<tr>...12345...56789...54321...</tr>...";
    Regex reg = new Regex(@"(?is)<tr>.*?</tr>");
    Match m = reg.Match(s);
    if(m.Success)
    {
        richTextBox2.Text = m.Value ;
    }
    /*-----输出------
    <tr>...12345...56789...54321...</tr>
    */
      

  7.   

    <tr>[\s\S]*?</tr>  貌似这样也行