如果我有以下几种a标签的样式,如下:
1.<a href="/zhxx/zhxx/201012/237877.html">大豆价格</a>
2.<a href="/zhxx/zhxx/201012/237877.html" target="_blank">大豆价格</a>
3.<a href="/zhxx/zhxx/201012/237877.html" title="大豆价格"  target="_blank">大豆价格</a>
4.<A title="大豆价格 href="/zhxx/zhxx/201012/237877.html" ></A>
5.<a id="ctl00_ContentPlaceHolder_Content_DataList17_ctl05_Hyperlink1" href="/zhxx/zhxx/201012/237877.html" target="_blank">大豆价格</a>
6.<a class="" href="/zhxx/zhxx/201012/237877.html" title="大豆价格" target="_blank">大豆价格</a>
7.<a title="大豆价格" class="" href="/zhxx/zhxx/201012/237877.html" target="_blank">大豆价格</a>等等以上这些链接,现在我想实现一个功能,当我输入大豆价格,或者大豆,豆价,或者价格等,不管它用那一种a标签的样式,我都能取出链接地址/zhxx/zhxx/201012/237877.html.请问我的正则表达式该怎么写呢?这是是否要分一下情况的啊,有title和无title的呢?
我先谢谢了,这个对我很重要。

解决方案 »

  1.   


    void Main()
    {
     string html = @"1.<a href=""/zhxx/zhxx/201012/237877.html"">大豆价格</a>
    2.<a href=""/zhxx/zhxx/201012/237877.html"" target=""_blank"">大豆价格</a>
    3.<a href=""/zhxx/zhxx/201012/237877.html"" title=""大豆价格"" target=""_blank"">大豆价格</a>
    4.<A title=""大豆价格 href=""/zhxx/zhxx/201012/237877.html"" ></A>
    5.<a id=""ctl00_ContentPlaceHolder_Content_DataList17_ctl05_Hyperlink1"" href=""/zhxx/zhxx/201012/237877.html"" target=""_blank"">大豆价格</a>
    6.<a class="""" href=""/zhxx/zhxx/201012/237877.html"" title=""大豆价格"" target=""_blank"">大豆价格</a>
    7.<a title=""大豆价格"" class="""" href=""/zhxx/zhxx/201012/237877.html"" target=""_blank"">大豆价格</a>";
     foreach(Match m in Regex.Matches(html,@"(?i)<a\s.*?href=['""](.*?)['""].*?(title=['""].*?大豆.*?['""])?.*?>(.*?大豆.*?)?</a>"))
     { 
     Console.WriteLine(m.Groups[1].Value);
     }
    }/*
    /zhxx/zhxx/201012/237877.html
    /zhxx/zhxx/201012/237877.html
    /zhxx/zhxx/201012/237877.html
    /zhxx/zhxx/201012/237877.html
    /zhxx/zhxx/201012/237877.html
    /zhxx/zhxx/201012/237877.html
    /zhxx/zhxx/201012/237877.html*/
      

  2.   

    谢谢啊,这句里面的@"(?i)<a\s.*?href=['""](.*?)['""].*?(title=['""].*?大豆.*?['""])?.*?>(.*?大豆.*?)?</a>"大豆是可以当做参数传入的吧。如果我的html语句是换行的好像是不可以的,如果这种情况也考虑的话,要怎么写啊
    如:
     string html = @"<a title=""大豆价格"" class="""" href=""/zhxx/zhxx/201012/237877.html"" target=""_blank"">
    大豆价格</a>";换行的html语言
      

  3.   

    不好意思啊,我到今天才发现你给我的正则是差找出所有的herf的链接地址,而我要的是符合条件的链接地址。可能是我没有表达清楚。例如一段网页的html,当我输入大豆时,把包含大豆的链接地址全部找出,而不是所有的。