![正则表达式创建非贪婪匹配](https://linux22.com/image/1517350/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%88%9B%E5%BB%BA%E9%9D%9E%E8%B4%AA%E5%A9%AA%E5%8C%B9%E9%85%8D.png)
我有以下正则表达式:
^sosreport-servername-.+\.tar\.\w{2}[0-9]?\b
我只需要匹配类似的文件名:
sosreport-servername-20161226061309.tar.xz
sosreport-servername-542046-98734e.tar.bz2
sosreport-servername-20161229005243-d252.tar.xz
但它也匹配扩展名为 .md5 的文件,即
sosreport-servername-20161226061309.tar.xz.md5
我也尝试过在正则表达式末尾添加 $,但它仍然使用 md5 缓存文件,你能帮忙吗?谢谢
答案1
您可以在表达式末尾使用负向前瞻,(?!\.md5)
因此修改后的表达式可能如下所示:
^sosreport-servername-.+\.tar\.\w{2}[0-9]?\b(?!\.md5)
我在 (1) N++ (v7.2.2) 和 (2) 中测试过它https://regex101.com/(聚合酶链反应)