Ich bin neu in Java Regex und ich kann nicht herausfinden, wie Sie benannte Capture-Gruppen in einem Ausdruck enthalten. Ich schreibe einen ScrewTurn Image Converter für Confluence's Universal Wiki Converter. Das ist, was ich habe:Wie können Sie named Capture-Gruppen in Java Regex aufnehmen?
String image = "\\[image(?<align>auto)?\\|\\|{UP\\(((?<namespace>\\w+)\\.)?(?<pagename>[\\w-]+)\\)}(?<filename>[\\w- ]+\\.[\\w]+)\\]";
Pattern imagePattern = Pattern.compile(image, Pattern.CASE_INSENSITIVE);
Es ist diese Ausnahme in Pattern.comiple()
werfen:
java.util.regex.PatternSyntaxException: Unknown look-behind group near index 19
\[image(?<align>auto)?\|\|{UP\(((?<namespace>\w+)\.)?(?<pagename>[\w-]+)\)}(?<filename>[\w- ]+\.[\w]+)\]
^
Ich habe den Namen Einfanggruppen, wie dies vor in C# verwendet (?<namedgroup>asdf)
, aber nicht in Java. Was vermisse ich?
Gut zu wissen, danke! – jrummell
Gern geschehen :) –
Es tut jetzt in JDK 7: http://stackoverflow.com/a/415635/1449525 – Patrick