正则表达式排除一个目录中的一些目录

时间:2018-01-30 05:12:01

标签: java regex

您好我正在读取一个目录中的目录。它的名称类似于abcModule和abcRelationModule,xyzModule

我有这个正则表达式modules/*/graphql-schema但正在考虑abcModuleabcRelationModulexyzModule

我想排除abcRelationModule,最后有RelationModule

1 个答案:

答案 0 :(得分:3)

试试这个正则表达式:

modules\/(?![^\/]*RelationModule)[^\/]*\/graphql-schema

<强> Click for Demo

<强> See the JAVA code here

<强>解释

  • modules\/ - 按字面意思匹配modules/
  • (?![^\/]*RelationModule) - 在目录
  • 中出现下一个RelationModule之前检查文本/是否存在的否定预测
  • [^\/]* - 匹配除/
  • 之外的任何字符的0次出现
  • \/graphql-schema - 按字面意思匹配/graphql-schema

如果您不想在目录中的任何位置RelationModule,只需使用^(?!.*RelationModule).+$