正则表达式匹配某些文件名和扩展名

时间:2017-11-24 13:38:14

标签: regex

我想创建一个匹配除pombeans之外的所有文件名的正则表达式,扩展名只能是javapropertiesxml

我使用的文件名 ^(?!beans$|pom$)\S*

对于扩展程序,我使用了java|properties|xml

它们都在regex101上独立测试时工作,但是当我尝试将它们组合在一起时它就不能工作

我已经尝试了

(^(?!beans$|pom$)\S*)\.(java|properties|xml)

但它不起作用

2 个答案:

答案 0 :(得分:0)

试试这个

^(?!pom|beans)([a-z0-9]+)\.(java|properties|xml)

答案 1 :(得分:0)

如果你只想匹配name.extension,可以使用这个正则表达式:

^(?!beans|pom)\w+\.(?:java|properties|xml)$

  • 从字符串^
  • 的开头
  • 断言的负面预测,不以bean或pom (?!beans|pom)
  • 开头
  • 单词字符一次或多次\w+
  • 直到遇到点.
  • 检查java或属性或xml (?:java|properties|xml)
  • 的非捕获组
  • 在第$
  • 的末尾

您可以使用\S+代替\w+,但这也会匹配:

temp.test.properties
test.beans.properties

^(?!beans|pom)\S+\.(?:java|properties|xml)$