AEM - 如何限制模板在特定路径中显示

时间:2016-01-20 16:57:05

标签: regex cq5 aem

我想知道是否有人达到了我在这里发布的内容。为了允许在特定路径下创建模板,有一个标记allowedPaths可以接收正则表达式。

因此,如果我希望我的模板"test"仅显示在/content/www/xx/xx/test-templates和子元素下,我可以这样做:

/content/www/.*/.*/test-templates(/.*)?

但是,如果我想反过来呢?我希望模板"test"出现在每个/content/www/xx/xx/节点及其他节点中,除了/content/www/xx/xx/test-templates和孩子?

到目前为止,我尝试了几种方法,但没有运气。你对此有一些暗示吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您始终可以使用前瞻限制更通用的模式。这是一个适合你的表达式:

^(?!/content/www/[^/]*/[^/]*/test-templates(?:/|$))/content/www/[^/]*/[^/]*(/.*)

请参阅demo

  • ^ - 匹配字符串的开头
  • (?!/content/www/[^/]*/[^/]*/test-templates(?:/|$)) - 确保下一个子字符串不是/content/www/<some_node>/<some_node>/test-templates,后跟字符串结尾($)或/
  • /content/www/[^/]*/[^/]*(/.*) - 匹配/content/www/<some_node>/<some_node>后跟可选的/以及除换行符以外的零个或多个字符