M
MikeTheT
Gast
Hallo gleich meine zweite Frage.
Ich habe einen String wo enorm viel und alles mögliche drinnen steht. Aus diesem String möchte ich eine Zahl raussuchen die zB folgende Form hat: 4.35x(x steht für einen Wert der sich verändert). So den ersten Ausdruck finde ich ohne probleme nur für mich ist der zweite, also der darauffolgende Match interessant. Welche methode kann ich verwenden um den zweiten Treffer mir ausgeben zu lassen. Hier mein Code:
Bin mit Regex nicht mehr so vertraut(ist schon lang her). Vll habe ich ja auch da etwas nicht ganz richtig gemacht und ich finde nur durch Zufall den richtigen, aber leider halt nur den ersten Match. Achja und die Methoden auf oracle hab ich mir auch schon angeschaut, zur Klasse matcher. Habe aber nichts passendes gefunden welches mir den zweiten gematchen Wert im String ausgibt! Mit group habe ich es versucht, bringt aber eine Fehlermeldung, dass wenn zum Beispiel 3 Matches vorhanden sind, und ich zB m.group(2) eingebe, sagt er mir, dass es keine group(2) gibt. Ich vermute möglicherweise einen Fehler bei meinen Regex?
LG Mike
Ich habe einen String wo enorm viel und alles mögliche drinnen steht. Aus diesem String möchte ich eine Zahl raussuchen die zB folgende Form hat: 4.35x(x steht für einen Wert der sich verändert). So den ersten Ausdruck finde ich ohne probleme nur für mich ist der zweite, also der darauffolgende Match interessant. Welche methode kann ich verwenden um den zweiten Treffer mir ausgeben zu lassen. Hier mein Code:
Java:
String test = getSource("test");
Pattern p = Pattern.compile("[0-9][.][0-9]{3}");
Matcher m = p.matcher(test);
System.out.println(m.find());//Nur Test
System.out.println(test.substring(m.start(), m.end()));
Bin mit Regex nicht mehr so vertraut(ist schon lang her). Vll habe ich ja auch da etwas nicht ganz richtig gemacht und ich finde nur durch Zufall den richtigen, aber leider halt nur den ersten Match. Achja und die Methoden auf oracle hab ich mir auch schon angeschaut, zur Klasse matcher. Habe aber nichts passendes gefunden welches mir den zweiten gematchen Wert im String ausgibt! Mit group habe ich es versucht, bringt aber eine Fehlermeldung, dass wenn zum Beispiel 3 Matches vorhanden sind, und ich zB m.group(2) eingebe, sagt er mir, dass es keine group(2) gibt. Ich vermute möglicherweise einen Fehler bei meinen Regex?
LG Mike
Zuletzt bearbeitet von einem Moderator: