2016-11-11 60 views
2
(?=(/content/xxx/(.*)/(.*)/(.*)/(.*)/*))(?=(^(?:(?!sample1|sample2).)*).*) 

这是我的正则表达式来限制我的模板知名度在一些道路,避免在特定的文件夹创建不工作。 任何人都可以找出任何问题或建议其他方式吗?正则表达式模式在AEM模板,allowedPaths财产

+0

我想我不能帮你,直到你给我的一切,多数民众赞成在'内容/ XXX/'(不仅仅是样品请求);) – nozzleman

+0

/content/atm/en/marketing/royalty /许可证文件包含许多文件夹,如sample1,sample2,sample3,sample4。我的要求是阻止sample1,sample2下的模板,但该模板应该可用于其他子文件夹(例如sample3,sample4) – Vijay

+0

嗯,这是dissapointing。不过,我想我不明白这个问题。有了正则表达式的问题,它总是有帮助的,以提供一个不需要匹配的东西,所需的匹配和字符串列表。这是用正则表达式指出预期行为的最简单方法。另外,根据您提供的表达式,究竟哪些不起作用? – nozzleman

回答

2

您可以使用

^/content/([^/]*)/([^/]*)/([^/]*)/(?![^/]*/(?:sample1|sample2))([^/]*) 

regex demo

详细

  • ^ - 串
  • 开始
  • /content/ - 文字串
  • ([^/]*)/ - 0+字符比/其他和/
  • ([^/]*)/([^/]*)/ - 对端2前面的子模式
  • (?![^/]*/(?:sample1|sample2)) - 如果存在比/其他任何0+字符失败比赛一个负先行,然后/ ,要么sample1或立即sample2到当前位置的
  • ([^/]*)权 - 0+字符比其他/

请注意,如果您不使用子匹配,该模式可缩短至

^/content/(?:[^/]*/){3}(?![^/]*/(?:sample1|sample2))[^/]* 

another demo