Javascript 只匹配一组

Javascript 只匹配一组,javascript,regex,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&g

我有以下案文:

<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>
三星xyz

khgj iPhone 9k

我想用它们各自的代码属性替换span标记。为此,我使用以下模式:

/<span class="placeholder" code="(.*?)">(?:.*)<\/span>/gi
/(?:.*)/gi
但它是从第一个跨度到最后一个跨度的匹配,而不是每个跨度单独匹配。我错过了什么


谢谢

您错过了一个
<默认情况下,code>*是贪婪的,您需要通过在
*
旁边添加
使其成为非贪婪的

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

@Cornwell你知道用regex解析html文件的后果吗?我知道你都是关于正则表达式的,但你在帮助人们编写糟糕的代码。我很失望。是的,但诚实的名声来自于给出包含实际好建议的好答案。你应该帮助学习者做出正确的选择。相反,您提供了一个regexp答案,并没有帮助询问者了解任何东西。你只是帮助他/她学会了做一些不正确的事情。如果你没有真正帮助人们学会正确的方法,那么80K+的声誉又有什么意义呢。看到这种行为,社区的其他成员感到沮丧。有时候,我花了很长时间才写出一个实际上是用来教提问者的答案。但最后,他/她还是很感激能学会正确与错误。作为一名教师,你有责任掌握你所掌握的知识。有人问了一个你觉得非常简单的问题,这证明提问者可能对问题中使用的语言/工具非常陌生。在学习过程的这个阶段,提供廉价的答案对你来说是非常有害的。更糟糕的是,这让其他老师更难弥补鲁莽、赚一些像你这样的轻松代理老师所造成的损失。询问者是否知道与regexp相关的“贪婪”一词/含义?这是我的观点。你没有做任何事情来教学习者任何东西。尽管您仍然使用regexp解析HTML,这是一个糟糕的前提,但您的答案仍然是“只要这样做,所有的问题都会消失”类型的答案。你教了询问者什么?他们如何更好地解决未来的问题?