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

Это мой шаблон регулярного выражения, который ограничивает мою видимость шаблонов под каким-либо путем и не создается в определенных папках. Может ли кто-нибудь выяснить любую проблему или предложить другие способы?Шаблон регулярных выражений, не работающий в AEM Шаблоны-allowedPaths property

+0

Я предполагаю, что я не могу помочь вам, пока вы не вышлите мне все, Thats в 'содержание/ххх/'(а не только образцы PLS);) – nozzleman

+0

/content/atm/en/marketing/royalty/В рамках роялти существует много папок, таких как sample1, sample2, sample3, sample4. Мое требование состоит в том, чтобы заблокировать шаблон под sample1, sample2, но эти шаблоны должны быть доступны в других подпапках (например, sample3, sample4) – Vijay

+0

Hm, thats disapointing. Однако, думаю, я не понимаю. С регулярными вопросами всегда полезно предоставить список укусов и желаемых совпадений и строк, где вещи не должны совпадать. Это самый простой способ указать ожидаемое поведение с регулярным выражением. Кроме того, на основе выражения, которое вы указали, что именно не работает? – nozzleman

ответ

2

Вы можете использовать

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

Смотрите regex demo

Детали:

  • ^ - начало строки
  • /content/ - буквальное подстроку
  • ([^/]*)/ - 0+, кроме / символов и через /
  • ([^/]*)/([^/]*)/ - 2 предыдущие подмаски на конце
  • (?![^/]*/(?:sample1|sample2)) - это отрицательного предпросмотр не проходит матч, если есть какой-либо 0+, кроме / символов, то / и либо sample1 или sample2 непосредственно справа от текущего местоположения
  • ([^/]*) - 0+ символы, кроме /

Обратите внимание, что если вы не используете submatches, шаблон может быть сокращен до

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

См another demo

Смежные вопросы