首页 > 解决方案 > 正则表达式,路径的特定单词除外

问题描述

我需要用虚拟图像 URL 替换图像 URL。我目前在排除具有ignore文件名的路径时遇到问题。

我已经成功实现了匹配这两个路径的正则表达式:

images/image-filename.png../images/image-filename.png

使用以下正则表达式:

..\/images\/(.*?)\.(?:png|jpg|jpeg|gif|png|svg)|images\/(.*?)\.(?:png|jpg|jpeg|gif|png|svg)

但是,我想排除ignore文件名中带有单词的任何路径,例如:

images/image-filename-ignore.png

谢谢!

标签: regexexceptionpathword

解决方案


这是一个使用否定前瞻断言ignore不作为文件名的一部分出现的选项:

images\/(?!.*ignore.*\.[^.]+).*\.(?:png|jpg|jpeg|gif|png|svg)

演示

但是,您也可以通过将无效文件名与 实际匹配ignore,然后在逻辑上排除这些匹配项来继续:

images\/.*ignore.*\.(?:png|jpg|jpeg|gif|png|svg)

推荐阅读