【发布时间】:2017-12-17 19:22:39
【问题描述】:
我的目标是只用 [src] 替换所有标签
hello <img class="gif" src="https://media2.giphy.com/media/zU4MLqeDvGA0M/100.gif" title="1"> hello
world <img class="gif" src="https://media2.giphy.com/media/zU4MLqeDvGA0M/100.gif" title="2"> hello2
由
[https://media2.giphy.com/media/zU4MLqeDvGA0M/100.gif] [https://media2.giphy.com/media/zU4MLqeDvGA0M/100.gif]
https://regex101.com/r/ZPOCCe/1
(我的正则表达式仅在两个图像之间有一条线的情况下才能正常工作。看起来它很贪心)
有什么想法吗?
【问题讨论】:
-
除了设置非贪婪之外,在某些情况下,您还可以通过将
.*替换为一个或多个非匹配器[^"]*来添加保护措施。你也可以使用反向引用来匹配类似:regex101.com/r/4RGCjo/1 但实际上很难,因为你可以有一个不带引号的有效 src 属性,你可能需要像前瞻这样的东西。 -
您不能自己编写正则表达式,而不能使用实际的 html 解析器吗?就像浏览器本身一样。
标签: javascript regex regex-greedy