2010-06-07 38 views
5

我是新來的Java正則表達式,我想不出如何在表達式中包含命名的捕獲組。我正在爲Confluence's Universal Wiki Converter寫一個ScrewTurn圖像轉換器。這是我有:如何在java正則表達式中包含命名捕獲組?

String image = "\\[image(?<align>auto)?\\|\\|{UP\\(((?<namespace>\\w+)\\.)?(?<pagename>[\\w-]+)\\)}(?<filename>[\\w- ]+\\.[\\w]+)\\]"; 

Pattern imagePattern = Pattern.compile(image, Pattern.CASE_INSENSITIVE); 

它拋出此異常Pattern.comiple()

java.util.regex.PatternSyntaxException: Unknown look-behind group near index 19 
\[image(?<align>auto)?\|\|{UP\(((?<namespace>\w+)\.)?(?<pagename>[\w-]+)\)}(?<filename>[\w- ]+\.[\w]+)\] 
       ^

我用命名的捕獲組這樣之前在C#中(?<namedgroup>asdf),但不是在Java中。我錯過了什麼?

回答