2016-11-11 72 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