Angenommen, dass ich ein RegexMuster gegeben bin, whole_pattern
Wie bekomme ich Muster von Gruppen in Java Regex?
Pattern p = Pattern.compile(whole_pattern);
Matcher m = p.matcher(line);
if (m.find()) {
String s1 = m.group(1);
String s2 = m.group(2);
}
Natürlich können wir String jeder Gruppe angepasst bekommen. Aber können wir das Muster jeder Gruppe in der whole_pattern
Zeichenfolge erhalten? Wenn beispielsweise whole_pattern = (\\d+)(\\w+)
, sind die Muster der Gruppe 1 und der Gruppe 2 \\d+
bzw. \\w+
.
Sie können sie aus dem String analysieren, indem die Zeichen Iterieren und Öffnungs Zählen und schließenden Klammern (unter Berücksichtigung nicht einfangender Gruppen). –
@AndyTurner: Haben wir einen automatischen Weg, dies zu tun? Außerdem ist viel Aufwand für das manuelle Analysieren erforderlich, wobei Fall von verschachtelten Mustern berücksichtigt wird. – Arnold
wenn du mit automatisch meinst schon implementiert, bezweifle ich es. Dies ist eine ziemlich ungewöhnliche Anforderung. Verschachtelt ist nicht wirklich viel schwieriger. –