【发布时间】:2011-02-28 17:35:40
【问题描述】:
我是 Java 正则表达式的新手,我不知道如何在表达式中包含命名的捕获组。我正在为Confluence's Universal Wiki Converter 编写一个ScrewTurn 图像转换器。这就是我所拥有的:
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 中没有。我错过了什么?
【问题讨论】: