Hallo,
ich versucht gerade mich in regulären Ausdrücker weiterbilden, und will dieses Wissen in einer Uniaufgabe einbringen (also ja: es ist eine Hausaufgabe, auch wenn wir reguläre Ausdrücke nicht verwenden müssen. ;)).
Folgenden String versuche ich zu "treffen":
<task> 1 3 15 Tu etwas
<task> ist ein Schlüsselwort
1 und 3 sind einstellige Zahlen zwischen 1 und 3
15 eine beliegige mehrstellige Zahl
und "Zu etwas" ein beliebiger String.
In natürlicher Sprache ist das Problem recht einfach zu formulieren:
Ich suche einen String, der mit "<task>" beginnt, von zwei Zahlen zwischen 1 und 3 gefolgt wird. Dannach folgt eine beliebige Zahl und dann Noch eine Zeichenkette.
Hier meine Versuche das dem Computer beizubringen:
Pattern p = Pattern.compile("(<task>) ( ) ([1-3]) ( ) ([1-3]) ( ) ([1-9]{1,}) ( ) (\S{0,})");
Pattern p = Pattern.compile("^<task>\s[1-3]{1}\s[1-3]{1}\s[0-9]\S");
Alle erflogslos, obwohl Sie mir eigendlich richtig erscheinen (Überraschung?!). Kann mich irgendwer in die richtige Richtung stoßen (Notfalls auch mit der RTFM-Keule)?
Danke für eure Zeit und liebe Grüße,
Severin
They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
-- Benjamin Franklin