首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将所有文件名与给定扩展名匹配,但特定文件名除外

将所有文件名与给定扩展名匹配,但特定文件名除外
EN

Stack Overflow用户
提问于 2017-05-09 16:06:07
回答 1查看 42关注 0票数 1

我有以下命令:

代码语言:javascript
复制
^((?!.*/gradle-wrapper\.jar$)|(.*\.jar$)|(.*\.exe$))

和下列数据:

代码语言:javascript
复制
rupe-engine/src/main/groovy/com/rupe/engine/JongoAutoConfiguration.java

gradle/wrapper/gradle-wrapper.jar

gradle/wrapper/gradle-bundle.exe

gradle/wrapexe/gradle.git

testit.jar

预期结果:

匹配gradle/wrapper/gradle-bundle.exetestit.jar

实际结果:

也匹配gradle/wrapper/gradle-wrapper.jar,尽管我试图“黑名单”这个文件名。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-09 16:16:35

您的正则表达式出现了“故障”,因为您使用了一个前瞻性分支作为替代分支,因此它不再限制模式。

您似乎希望匹配以.jar.exe结尾而不以/gradle-wrapper.jar结尾的字符串。使用

代码语言:javascript
复制
^(?!.*/gradle-wrapper\.jar$).*\.(?:jar|exe)$

regex演示

详细信息

  • ^ -字符串的开始
  • (?!.*/gradle-wrapper\.jar$) -如果在任何0+字符(.*)之后都有/gradle-wrapper.jar子字符串,然后紧跟字符串的末尾($),则失败
  • .*\. -匹配任何0+字符(行中断字符除外),直到最后一个.
  • (?:jar|exe) - jarexe
  • $ -字符串的末端。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43874787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档