对于Java中的正则表达式,我是新手,我不知道如何在表达式中包含命名的捕获组。我正在写一个螺旋旋转图像转换器
Confluence's Universal Wiki Converter
. 这就是我所拥有的:
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中。我错过了什么?