正则表达式为什么结果只有一个的时候 可以匹配出来,多个就不行了,求救 !!!

正则:(?<=href='http://item.jd.com).*(?='><imgwidth=)目标:<liindex='0'><div><atarget='_bla... 正则:(?<=href='http://item.jd.com).*(?='><img width=)
目标:<li index='0'><div><a target='_blank' href='http://item.jd.com/482148.html'><img width='220' height='220' src='#'/></a></div></div><div><a target='_blank' href='http://item.jd.com/482148.html'>格兰仕</a></div></li><li index='1'><div><a target='_blank' href='http://item.jd.com/541367.html'><img width='220' height='220' src='#'/></a></div><div><a target='_blank' href='http://item.jd.com/541367.html'>TCL</a></div></li>
请高手帮我看看哪里错了,为什么匹配不出来。。。。。。
展开
 我来答
紫薇参星
科技发烧友

2013-08-07 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3488万
展开全部
你的正则表达式中.*用的是贪婪模式所以匹配出来只有一个,
加一个问号即.*?变成非贪婪模式就可以匹配出多个了,你的例子中可以匹配两个,因为'><img width=在你的例子中只有两个.
总之,把正则表达式改成(?<=href='http://item.jd.com).*?(?='><img width=)可以匹配两个
把正则表达式改成(?<=href='http://item.jd.com).*?(?='>)可以匹配四个,在你的例子中.
更多追问追答
追问
你理解错了  我的目标是匹配出来两个结果,就是 http://item.jd.com 和 ('><img  中间的结果。

你这样的话 会得到四个结果。
谢谢 。。。。
追答
如果你想匹配出两个结果,正则表达式写成这样(?<img width=)就可以了,就是加个问号就行了.
王卫华369
2013-08-07
知道答主
回答量:16
采纳率:0%
帮助的人:4.7万
展开全部
你用的是最佳匹配,最容易理解的是采用判断语句,多次判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式