见下面一段HTML代码 取<span class="123">与</span>和<span class="med reg">与</span>之间的字符串 
一个页面中有很多符合这个条件的值 请问要获取所有符合此格式的值 的正策怎么写  _blank"><span class="123">&#23567;&#26102;&#20195;2.5:&#38155;&#38134;&#26102;&#20195;(vol.2)</span></a> <span class="med reg">测试测试 (测试)</span>HTML正则表达式C#

解决方案 »

  1.   

                string str = @"<span class=""123"">与</span>和<span class=""med reg"">和</span>";
                string strmatch = @"(?is)(?<=(<span class=""123"">)|(<span class=""med reg"">))[^<>]+(?=</span>)";
                System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(strmatch);
                System.Text.RegularExpressions.Match m = reg.Match(str);
                System.Text.RegularExpressions.MatchCollection mc = reg.Matches(str);
                foreach (System.Text.RegularExpressions.Match mm in mc)
                {
                    MessageBox.Show(mm.Value);
                }
      

  2.   

    非常感谢 可能是我问得有问题 要筛选的是这下面这句
    (我只能去到页面的第一个而取不到其他符合此条件的值 _blank\"><span class=\"123\">.*?< ):_blank"><span class="123">&#23567;&#26102;&#20195;2.5:&#38155;&#38134;&#26102;&#20195;(vol.2)</span></a> <span class="med reg">测试测试 (测试)</span>
      

  3.   

    用这样的方法取所获得的值貌似不太好用 请教有没有好用的 
    其实 我只要前24条数据 只是取了类值所以用了48长度的数组 
    string[] a=new string[48];
                int p = 0;
                foreach (System.Text.RegularExpressions.Match mm in mc)
                {
                 
                   p+= 1;
                   a[p] = mm.Value.ToString();
                     if(p==48) 
                           return a;
                }
                return a;