【问题标题】:Regex to Match Two Strings Including Anything in Between Without Line-Breaks正则表达式匹配两个字符串,包括没有换行符之间的任何内容
【发布时间】:2023-02-04 18:58:13
【问题描述】:

我想将 HTML 中的所有 .png 扩展名替换为 .webp 所以我正在做正则表达式来匹配 png 链接:

\.\/assets\/images\/.*\.png

如果我的 HTML 文件有这样的换行符,这就可以正常工作:

<picture>
<source class="d-block w-100" media="(max-width: 575px)"
srcset="./assets/images/slider/advertisers-pt.png">

<source class="d-block w-100"
media="(min-width: 576px) and (max-width: 768px)"
srcset="./assets/images/slider/advertisers-pt.png">

<img class="w-100" srcset="
./assets/images/slider/advertisers-ls.png"
src="./assets/images/slider/advertisers-ls.png" alt="">
</picture>

并且它正确匹配所有字符串。

但是在缩小之后,它不再起作用,并且它与起始字符串匹配,直到第二个字符串的最后一次出现以及介于两者之间的所有内容,因此如下:

<picture><source class="d-block w-100" media="(max-width: 575px)"srcset="./assets/images/slider/advertisers-pt.png"><source class="d-block w-100"media="(min-width: 576px) and (max-width: 768px)" srcset="./assets/images/slider/advertisers-pt.png"><img class="w-100" srcset="./assets/images/slider/advertisers-ls.png" src="./assets/images/slider/advertisers-ls.png" alt=""></picture>

将匹配:

./assets/images/slider/advertisers-pt.png"><source class="d-block w-100"media="(min-width: 576px) and (max-width: 768px)" srcset="./assets/images/slider/advertisers-pt.png"><img class="w-100" srcset="./assets/images/slider/advertisers-ls.png" src="./assets/images/slider/advertisers-ls.png

缩小文件后如何使用正则表达式执行此操作?

【问题讨论】:

    标签: regex match minify


    【解决方案1】:

    尝试使用 /S 非空白字符匹配器而不是 . 匹配任何:

    ./assets/imagesS*.png

    regex101 Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-06
      • 1970-01-01
      • 2017-02-26
      • 1970-01-01
      • 2012-01-08
      • 2021-05-12
      • 2014-02-04
      • 1970-01-01
      相关资源
      最近更新 更多