2017-10-14 1 views
0

Ich versuche, 3 Regex-Gruppen mit dem Java Matcher zu erstellen. Das Format der Linien Ich versuche zu entsprechen, wie folgt:So erstellen Sie 3 Regex-Gruppen mit der ersten und letzten Gruppe als Datum

dd/MM/yyyy einige zufällige Linie hier dd/MM/yyyy

Ich brauche jedes Datum und den mittleren Teil in einer separaten Gruppe. Um jedoch das zweite Datum vom mittleren Teil zu trennen, müssen Sie irgendwie eine andere Regex-Gruppe weiterleiten, die scheinbar nicht unterstützt wird. Ich war etwas entlang der Linien dieses Denkens:

^([1-9]|[0-3][0-9])\.([01][012]|[1-9]|0[1-9])\.([12]\d{3}|\d{2})(.*)([1-9]|[0-3][0-9])\.([01][012]|[1-9]|0[1-9])\.([12]\d{3}|\d{2})$ 

leider nur das bekommt mir zwei Gruppen, das erste Datum und den Rest.

Jede Hilfe würde sehr geschätzt werden.

+0

Warum nicht 'String :: split' für SPACE und nimm erste und letzte Elemente? Parsen Sie dann mit 'LocalDate' und' DateTimeFormatter'. Überspringe Regex insgesamt. –

+0

Es gibt einen Grund, Regex existiert und ich wähle es aus einem Grund. Ich bin also wirklich nur an einer Regex-Lösung interessiert. – Allan

Antwort

0

können Sie diese Regex versuchen:

^(\d{2}\/\d{2}\/\d{4})(.*)(\d{2}\/\d{2}\/\d{4})$ 

online über tool können Sie überprüfen, ob

11/11/1111 some random line here 11/12/2345 

produziert:

0: [0,43] 11/11/1111 some random line here 11/12/2345 
1: [0,10] 11/11/1111 
2: [10,33] some random line here 
3: [33,43] 11/12/2345 
+0

Danke dafür, es ist ein guter Anfang und ich war schon so weit gekommen, aber ich würde es gerne ein bisschen fortgeschrittener machen. Akzeptieren Sie auch Tage und Monate im einstelligen Bereich, z. [1-9] | [0-3] [0-9]) \/([01] [012] | [1-9] | 0 [1-9]) \/([12] \ d {3 } | \ d {2} – Allan

Verwandte Themen