Aus einer Zeichenfolge, muss ich Gruppen, die ein bestimmtes Muster entsprechen ziehen.Java - Reg Ausdruck mit Gruppen
Ein Beispiel string: <XmlLrvs>FIRST</XmlLrvs><XmlLrvs>SECOND</XmlLrvs><XmlLrvs>Third</XmlLrvs>
Jede Gruppe wird mit <XmlLrvs>
beginnen und mit </XmlLrvs>
beenden. Hier ist ein Ausschnitt aus meinem Code ...
String patternStr = "(<XmlLrvs>.+?</XmlLrvs>)+";
// Compile and use regular expression
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(text);
matcher.matches();
// Get all groups for this match
for (int i = 1; i<=matcher.groupCount(); i++) {
System.out.println(matcher.group(i));
}
Der Ausgang <XmlLrvs>Third</XmlLrvs>
ist. Ich erwarte Gruppe zuerst und Sekunde, aber diese werden nicht gefangen genommen. Kann jemand helfen?
Beachten Sie, dass die + in der Regex entfernt werden muss, oder alles auf einmal abgestimmt werden, und nicht in drei Iterationen. – molf
Ich stimme damit nicht überein, das. +? ist ein nicht-gieriger Quantifizierer. Aber ich habe es nicht getestet. – waxwing
Ich meine das Finale +. – molf