下面一段字符 <div class="g"><a class="l" href="http://www.tdelec.com/products" target="_blank">气动产品目录</a><table border="0" cellpadding="0" cellspacing="0"><tr><td class="j"><font size="-1">气动类的所有产品均在这里<br /><span class="a">http://www.tdelec.com/products?class=1<nobr><a class="fl" href=http://www.tdelec.com">qd pages</a></nobr></span></font></td></tr></table></div>
我在用正则表达式比较出
1:http://www.tdelec.com/products
2:气动产品目录
3:气动类的所有产品均在这里
4:http://www.tdelec.com/products?class=1这四个部份,请大家帮帮忙。谢谢了。

解决方案 »

  1.   

    题解:(已调试)
    1:http://www\.tdelec\.com/products
    2:气动产品目录
    3:气动类的所有产品均在这里
    4:http://www\.tdelec\.com/products\?class=1
      

  2.   

    这个不适合用正则来做吧?
    如果你的所有的数据都是规范的话
    根据你要的几串数据
    找到关键字然后进行string的操作就可以了
    例如
    1:http://www.tdelec.com/products
    就可以找到每个<div>……</div>中第一个http:作为开始的位置,第一个target="_blank"作为结束的位置,用substring得到
      

  3.   

    题解:(已调试)
    1:http://www\.tdelec\.com/products
    2:气动产品目录
    3:气动类的所有产品均在这里
    4:http://www\.tdelec\.com/products\?class=1
    --------------------------------------------
    不符合你的要求???
    如没特殊要求,这个正则表达式就可以
      

  4.   

    string yourStr = ......;
    MatchCollection mc = Regex.Matches(yourStr, "<div\\s+class=\"g\">\\s*<a\\s+class.+?href=\"(?<url>.+?)\"\\s+target.+?>(?<1>.+?)</a>\\s*<table.+?>\\s*<tr>\\s*<td.+?>\\s*<font.+?>(?<2>.+?)<br.+?/>\\s*<span\\s+class=\"a\">(?<url2>.+?)<nobr>", RegexOptions.IgnoreCase);
    foreach(Match m in mc)
    {
        m.Groups["url"].Value;//1:http://www.tdelec.com/products
        m.Groups["1"].Value;//2:气动产品目录
        m.Groups["2"].Value;//3:气动类的所有产品均在这里
        m.Groups["url2"].Value;//4:http://www.tdelec.com/products?class=1
    }