我是新來的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中。我錯過了什麼?
好知道,謝謝! – jrummell 2010-06-07 14:19:52
不客氣:) – 2010-06-07 14:29:12
它現在在JDK 7中:http://stackoverflow.com/a/415635/1449525 – Patrick 2013-02-19 02:24:12