正则表达式找到所有匹配

时间:2015-01-12 16:02:54

标签: regex pcre

我有这段代码

<img style="border:0px;" src="http://example.com/images/items/Start.gif" ONMOUSEOVER="itempopup(event,'83560729')" ONMOUSEOUT="kill()" onclick="removeItem('83560729',219395,0);document.getElementById('tab8').innerHTML=''"><img style="border:0px;" src="http://example.com/images/items/Start_init.gif" ONMOUSEOVER="itempopup(event,'83014012')" ONMOUSEOUT="kill()" onclick="removeItem('83014012',219395,0);document.getElementById('tab8').innerHTML=''"><img style="border:0px;" src="http://example.com/images/items/start.gif" ONMOUSEOVER="itempopup(event,'82196324')" ONMOUSEOUT="kill()" onclick="removeItem('82196324',219395,0);document.getElementById('tab8').innerHTML=''"> </div>

也张贴在这里:https://regex101.com/r/gM2yD7/1 我找到所有的比赛都有问题。我试着以不同的方式找到3场比赛,但是让我接近:items / [sS] tart。* itempopup(event,\&#39;(\ d +),但是他没有找到全部3,而是只得到1任何人都可以帮我提出建议吗?

1 个答案:

答案 0 :(得分:1)

要使.*非贪婪(懒惰),您应该使用?

items\/[sS]tart.*?itempopup\(event,\'(\d+)

.* greedy 意味着引擎会尽可能多地重复它,因此正则表达式会继续尝试将.与下一个字符匹配,从而产生匹配整个令牌,然后它回溯直到它匹配以下令牌 - 意味着它将继续匹配所有内容并最终匹配itempopup(event,\'(\d+)