查询正则表达式

时间:2018-01-17 14:55:52

标签: regex

我需要构建一个正则表达式来匹配以下文件名模式:

EDI*.DAT

同时它应该将具有以下文件名模式的文件排除为EDI*US*.DATEDI*CA*.DAT

例如:假设有三个文件

“EDIabUS674.DAT” “EDIabcdCA1234.DAT”和 “EDIabcIN987.DAT”

我需要一个正则表达式来匹配名为“EDIabcIN123.DAT”的文件,同时不应该匹配并排除其他两个文件“EDIabUS674.DAT”和“EDIabcdCA1234.DAT”

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

也许您可以使用2个否定前瞻来断言该字符串不包含CAUS

^(?!.*CA)(?!.*US)EDI\w+\.DAT$

<强>解释

  • 从字符串^
  • 的开头
  • 断言以下内容不是AC (?!.*CA)
  • 断言以下内容不是美国(?!.*US)
  • 匹配EDI
  • 匹配任何单词字符一次或多次\w+(如果您不想匹配下划线,可以将其更改为例如[A-Za-z \ d] +)
  • 匹配.DAT \.DAT
  • 字符串$
  • 的结尾