【发布时间】:2016-06-18 09:23:17
【问题描述】:
我正在使用正则表达式替换 html 文件中的图像源 URL。
例如,我想将 img/ 替换为 <?= $folder ?>/img/
问题:
当我多次运行正则表达式时,它将再次替换img/,创建:
<?= $folder ?>/<?= $folder ?>/img
..等等。如果还没有<?= $folder ?>/img,有没有办法告诉正则表达式替换img/?
我正在尝试/^(?:(?!<?= $folder ?>/img).)*$/,但不确定如何首先匹配并检查它是否尚未包含<?= $folder ?>/img
【问题讨论】:
-
我不知道它是否会更清晰,但你可以先用
[PLACEHOLDER]替换完整的字符串,然后进行替换,然后再次用完整的字符串替换[PLACEHOLDER].我相信您可以只用一个 RegEx 进行替换,但这种方式将是一种更线性的替代方法。 -
@anubhava 我更新了我的问题
-
你为什么要使用正则表达式?您只需要进行查找和替换。
-
@Mikey 用于使用正则表达式的 gulp 组件
-
您的正则表达式
/^(?:(?!<?= $folder ?>\/img).)*$/工作正常,如果输入中已经存在相同的字符串,则不会替换
标签: javascript html regex image directory