<a href="http://www.baidu.com" ><span class="MyClass">百度</span></a>其中:
1、href的值是可变的
2、<span class="MyClass">与可有可无,并且class的值是可变的。求正则: 
同时匹配<a href="http://www.baidu.com" ><span class="MyClass">百度</span></a>
得到href的值(放在分组里)?
我写的:(?is)<a href="([^'""\s]+)[^>]*?"\s?>东莞</a>   只能匹配没有span的时候

解决方案 »

  1.   

    string s = @"<a href=""http://www.baidu.com"" ><span class=""MyClass"">百度</span></a>";
    Match match = Regex.Match(s, @"<a[^>]href=""([^""]+?)""[^>]>.*?</a>", RegexOptions.IgnoreCase);
    Response.Write(match.Groups[1].Value + "<br/>");
      

  2.   

    <a href="http://www.baidu.com" ><span class="MyClass">百度</span></a>其中:
    1、href的值是可变的
    2、<span class="MyClass">与可有可无,并且class的值是可变的。
    3、百度 这个词是不变的。求正则:  
    同时匹配<a href="http://www.baidu.com" ><span class="MyClass">百度</span></a>
    得到href的值(放在分组里)?
    我写的:(?is)<a href="([^'""\s]+)[^>]*?"\s?>东莞</a> 只能匹配没有span的时候
    楼上的为什么是href=""http://www.baidu.com""  两个""呢?
      

  3.   

    string s = @"<a href=""http://www.baidu.com"" ><span class=""MyClass"">百度</span></a>";
    Match match = Regex.Match(s, @"<a[^>]href=""([^""]+?)""[^>]>.*?百度.*?</a>", RegexOptions.IgnoreCase);
    Response.Write(match.Groups[1].Value + "<br/>");两个前面加了@,""就表示"
      

  4.   

            string str = @"<a href=""http://www.baidu.com"" ><span class=""MyClass"">百度</span></a>";
            Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""\s]?)([^'""\s]+)\1[^>]*?>.*?百度.*?</a>");
            foreach (Match m in reg.Matches(str))
                Response.Write(m.Groups[2].Value);
      

  5.   

    能不能解释一下  <span class="MyClass">与可有可无  这个是怎么做到的呢??
      

  6.   

    .*?非贪婪匹配匹配任意数0到多次,如果有<span class="MyClass">会匹配到,没有的话也没影响。
    这里主要是你说的百度是固定词。所以只要百度固定后找到href就可以。