regex - 正则表达式,路径的特定单词除外
问题描述
我需要用虚拟图像 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
谢谢!
解决方案
这是一个使用否定前瞻断言ignore
不作为文件名的一部分出现的选项:
images\/(?!.*ignore.*\.[^.]+).*\.(?:png|jpg|jpeg|gif|png|svg)
演示
但是,您也可以通过将无效文件名与 实际匹配ignore
,然后在逻辑上排除这些匹配项来继续:
images\/.*ignore.*\.(?:png|jpg|jpeg|gif|png|svg)
推荐阅读
- scala - Scala:将数据框的字典列转换为表
- arrays - Swift:构造一个将处理 JSON/Dictionalry 解析的对象的正确实现是什么
- android - 设置 imageAnalysis.setAnalyzer() 时编译错误
- python - 无法将输入键绑定到按钮 Python Tkinter
- python - 我想在条目中输入一个值,按一个按钮并将该值保存在一个 var 中并使用该值创建一个 .txt 但它不起作用
- node.js - 如何在不创建文件的情况下将传入数据(NDJ)从 API 传递到 CSV 格式的另一个 API?
- content-management-system - 我应该如何为网站 CMS 构建内容空间模型
- sql - 如何将 Local_Timestamp 转换为 UTC 时间戳?
- java - 基于请求属性从应用程序属性动态加载配置
- excel - 有没有办法在excel的单元格中编码结果列表