【问题标题】:JS and regex: replace all img by their [src]? [duplicate]JS 和正则表达式:用它们的 [src] 替换所有 img? [复制]
【发布时间】: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


【解决方案1】:

您可以使用.*?(后加问号)使正则表达式变得懒惰而不是贪婪(只需.*)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2015-07-06
    • 2021-10-16
    • 2011-10-26
    • 1970-01-01
    相关资源
    最近更新 更多