正则表达式创建非贪婪匹配

正则表达式创建非贪婪匹配

我有以下正则表达式:

^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/(聚合酶链反应)

相关内容