Ich habe eine Zeichenfolge von Formular "Some lengthy string, Pattern1: string1, Pattern2: string2, Pattern3: string3"
. Mein Ziel ist es, string1
, string2
und string3
aus einer solchen String
zu extrahieren.Split String mehrere Muster
Beachten Sie, dass die Strings
, Pattern1
, Pattern2
und Pattern3
selbst aus mehreren Zeichen bestehen. Ich kenne die Lösung, wenn diese Muster einzelne Zeichen sind. Zur Zeit bin ich gezwungen, mehrere String.split()
Anrufe jeweils für Pattern1
, Pattern2
und Pattern3
zu tun.
Gibt es eine elegantere Art, dies zu tun? Oder gibt es kein Entkommen mehrere split()
Anrufe?
EDIT: Ich suchte oder eine Java-spezifische Lösung (Daher war Java im Titel, aber es wurde bearbeitet). Sowieso. Das habe ich versucht und es scheint für mich zu funktionieren.
String someString = "Some lengthy string Pattern1: string1 Pattern2: string2 Pattern3: string3";
String [] str = someString.split("Pattern1:|Pattern2:|Pattern3:");
System.out.println(str[1]);
System.out.println(str[2]);
System.out.println(str[3]);
Ausgabe dieser ist
string1
string2
string3
Offensichtliche Probleme mit diesem?
Capturing Gruppen helfen können: [ 'Pattern1 (s?): (.? *) \ S *, \ s * Pattern2: \ s * (. *?), \ s * Muster3: \ s * (. *) "'] (https://regex101.com/r/LA4cts/2) –