日期:2014-05-18  浏览次数:21090 次

奇怪的正则表达式 求助!
用谷歌搜 金属手机 得到的htm部分打码如下:

<div class="med" id="res" role="main"> <div id="topstuff"> <div class="std stp">可直接输入手机号码来查它的归属地 [<a href=/intl/zh-CN/help/features.html#mobile>细节</a>]。</div> </div> <div id="search"> <h2 class="hd">搜索结果</h2> <div id="ires"> <ol eid="bYV0T4f3D--fiAfYz-3jDw" id="rso"><li class="g"><div class="vsc" pved="0CD8QkgowAA" bved="0CEAQkQo" sig="2W8"><h3 class="r"><a href="http://mobile.pconline.com.cn/guide/1005/2133758.html" target=_blank class=l onmousedown="return rwt(this,'','','','1','AFQjCNFeuwbmfUqu_phlSwP5Ep2OsdDcaQ','','0CEYQFjAA',null,event)">塑料外壳没质感潮人必选<em>金属手机</em>搜罗_手机导购 - 手机- 太平洋电脑网</a></h3><div class="s"><div class="f kv"><cite><span class=bc>mobile.pconline.com.cn &rsaquo; <a href="/url?url=http://mobile.pconline.com.cn/guide/&amp;rct=j&amp;sa=X&amp;ei=bYV0T4f3D--fiAfYz-3jDw&amp;ved=0CEQQ6QUoADAA&amp;q=%E9%87%91%E5%B1%9E%E6%89%8B%E6%9C%BA&amp;usg=AFQjCNFjgc8LU01Xv9xYdIIyi5zoS7B92w" target=_blank>手机导购</a></span></cite><span class="gl"> 

要捕获<h3 class="r"><a href="http://mobile.pconline.com.cn/guide/1005/2133758.html"中的网址。

我用表达式:<h3 class="r"><a href="(?<key>[^"]+)" 在正则表达式测试工具里可以。
但是在c#里得到的是="/url?url=http://mobile.pconline.com.cn/guide/&amp;rct=j&amp;sa=X&amp;ei=bYV0T4f3D--fiAfYz-3jDw&amp;ved=0CEQQ6QUoADAA&amp;q=%E9%87%91%E5%B1%9E%E6%89%8B%E6%9C%BA&amp;usg=AFQjCNFjgc8LU01Xv9xYdIIyi5zoS7B92w

我用:"><h3 class="r"><a href="(?<key>[^"]+)" 或 "><h3 class="r"><a href="(?<key>[^"]+)" target=_blank class=l onmousedown= 就捕获不到。

在MTracer正则表达式工具里面都可以捕获。

O(∩_∩)O谢谢

------解决方案--------------------
探讨

试过了,还是不对啊
用这个(?is)<h3 class=""r""><a href=""(?<key>[^""]+)""\s*[^>]*>.*?</a>还是不行