返回列表 发帖

[问题]多行模式下的匹配问题?

本帖最后由 输入法 于 2010-8-2 10:42 编辑

http://shopsearch.taobao.com/browse/shop_search.htm?q=&title=title&nick=nick&loc=&cat=50011740&catName=%C1%F7%D0%D0%C4%D0%D0%AC&ratesum=&Submit=++%CB%D1+%CB%F7++

以上页面源代码

正则为:<a\shref="(.*?)">2</a>

RegexBuddy单行模式下可以得到想要结果。
多行模式就会多匹配很多内容,这时想到了排除的方法用到了[^\r\n] 实际正则为: <a\shref="([^\r\n].*?)">2</a> 结果还是不行。

对于这类的情况并且一定要多行模式执行,应该如何操作呢?

使用"([^"]+)"解决之。
在答疑解惑版提问时,请注明所用语言、范例文本、匹配结果。谢谢!
------------------------------------------------------------------------------
我爱正则表达式
GTalk: rex[at]zhasm[dot]com
Twitter: rex_zhasm

TOP

感谢老大解答问题解决!
方法为:<a\shref="([^"]+)">2
思路是:从左双引号开始,匹配所有非右引号的内容(使用排除法排除右引号),直到右引号

TOP

返回列表