2016-01-20 40 views
2

顯示模板我不知道是否有人已經實現了,我會在這裏發佈。爲了允許在特定路徑下創建模板,有一個接收正則表達式的標誌allowedPathsAEM - 如何限制在一定的路徑

所以,如果我想我的模板"test"只出現在/content/www/xx/xx/test-templates和子元素,我可以這樣做:

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

但是,如果我想結交異性呢?我希望模板"test"出現在每一個/content/www/xx/xx/節點以後,除非/content/www/xx/xx/test-templates和孩子?

我至今嘗試過多種方法,但沒有運氣。你有關於這個的一些暗示嗎?

謝謝!

+0

如果這個味道支持正則表達式,但你可以嘗試'^(不知道零個或多個字符?!/內容/ WWW/[^ /] */[^ /] * /測試模板)/內容/ WWW /[^/]*/[^/]*(/.*)'或'(?!/content/www/[^ /] */[^ /] */test-templates)/ content/www/[^/]*/[^/]*(/.*)' –

+0

立即檢查。我認爲這是一個非常好的解決方案!我將把結果放在這裏。 – SnwBr

+0

http://regexr.com/3ckfm似乎幾乎幾乎工作! :)它仍然排除/內容/ www/us/en/test-templates-calendar和/ content/www/us/en/test-templates-calendar /應該被接受。 – SnwBr

回答

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>其次可選/和除換行符以外
+0

我認爲它可以縮短,但它沒有工作,然後:( –

+0

作品像一個魅力的傢伙!非常感謝你!:D – SnwBr