只匹配一组

时间:2015-06-19 17:16:17

标签: javascript regex

我有以下文字:

<p>k</p><p><span class="placeholder" code="{YSZZ}">Samsung xyz</span>&nbsp;</p>
<p>khgj&nbsp;<span class="placeholder" code="{UIDJU}">iPhone 9k</span>&nbsp;</p></div>

我想用各自的代码属性替换span标签。为此,我使用这种模式:

/<span class="placeholder" code="(.*?)">(?:.*)<\/span>/gi

但它从第一个跨度到最后一个跨度匹配,而不是单独的每个跨度。我错过了什么?

https://regex101.com/r/fP4aD7/1

谢谢

1 个答案:

答案 0 :(得分:2)

你错过了?。默认情况下,.*是贪婪的,您需要在?旁边添加.*,使其成为非贪婪的。

<span class="placeholder" code="(.*?)">.*?<\/span>
                                         ^
                                         |