Ich bekomme Stunden, Minuten, Sekunden und Millisekunden mit dem matcher.replace Methode und Rückverweise von Regex-Gruppen. Gibt es eine bessere Methode, um den Wert von Regex-Gruppen zu erhalten? Ich habe es versucht
hours = matcher.group(1);
aber es wirft die folgende Ausnahme:
java.lang.IllegalStateException: No match found
at java.util.regex.Matcher.group(Matcher.java:477)
at com.abnamro.cil.test.TimeRegex.main(TimeRegex.java:70)
Übersehe ich hier etwas?
Nur um sicherzugehen, überprüfen Sie noch matcher.matches() == True erstes richtig?
– Eser Aygün
26. Juli 2012 um 9:36 Uhr
Markus Byers
Es funktioniert gut, wenn Sie es vermeiden, anzurufen matcher.replaceAll. Wenn du anrufst replaceAll es vergisst alle vorherigen Übereinstimmungen.
Ich musste matcher.find() anstelle von matcher.matches() verwenden, als ich dies implementierte. Abgesehen davon hat das bei mir einwandfrei funktioniert.
– Jeff M
5. Februar 2021 um 16:29 Uhr
Es funktioniert, wenn Sie verwenden matcher.find() bevor die Gruppenfunktion aufgerufen wird.
Ich habe eine Situation, wo find gibt true zurück, aber groups löst eine Ausnahme aus
– Dopatraman
19. Juli 2017 um 20:39 Uhr
10547200cookie-checkSo erhalten Sie mit Regex übereinstimmende Gruppenwerteyes
Nur um sicherzugehen, überprüfen Sie noch
matcher.matches() == True
erstes richtig?– Eser Aygün
26. Juli 2012 um 9:36 Uhr