正则表达式模式在 AEM Templates-allowedPaths 中不起作用 属性

Regex pattern not working in AEM Templates-allowedPaths property

(?=(/content/xxx/(.*)/(.*)/(.*)/(.*)/*))(?=(^(?:(?!sample1|sample2).)*).*)

这是我的正则表达式模式,用于限制我对某些路径下模板的可见性并避免在特定文件夹下创建。 谁能解决任何问题或提出其他方法?

您可以使用

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

regex demo

详情:

  • ^ - 字符串开头
  • /content/ - 文字子串
  • ([^/]*)/ - //
  • 以外的 0+ 个字符
  • ([^/]*)/([^/]*)/ - 前 2 个子模式结束
  • (?![^/]*/(?:sample1|sample2)) - 负前瞻 如果除 / 之外还有任何 0+ 个字符,则匹配失败,然后 / 和当前位置
  • 右侧的 sample1sample2
  • ([^/]*) - /
  • 以外的 0+ 个字符

请注意,如果您不使用子匹配,则模式可以缩短为

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

another demo