Java regex
-
Hallo!
Kennt jemand ne Seite, wo die Java-Regex gut erklärt sind? Ich hab zwar schon in der Doku rumgelesen, aber nicht so richtig das gefunden, was ich haben will.
Ich möchte strings parsen, die zum Beispiel so aussehen.
wort1.<zahl1>.wort2_<zahl2>.wort3: blabla
wort1, wort2, wort3 kenne ich, die Zahlen muß ich aber irgendwie extrahieren. Es ist natürlich nicht schwer mem regex hinzuschreiben, der genau das akzeptiert. Als Ergebnis erhalte ich dann ja ein MatchResult. Aber wie komme ich dann an die string-Teile, die auf <zahl1> bzw. <zahl2> gematcht wurden? Läuft das über die groups? Wenn ja, wie krieg ich's hin, daß ich genau nur die Zahlen als groups kriege?
Danke schonmal im Voraus
Jester
-
Hab jetzt keine gute doku gefunden, aber ein Beispiel
String input = "1 fish 2 fish red fish blue fish"; Scanner s = new Scanner(input); s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)"); MatchResult result = s.match(); for (int i=1; i<=result.groupCount(); i++) System.out.println(result.group(i)); s.close();
http://zamples.com/JspExplorer/samples/jdk1_5.jsp
Aber wieso reicht die doku nicht?
http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/MatchResult.html
-
Ich habe aus der Doku nicht so richtig verstanden, wie ich den regulären Ausdruck bauen muß, damit die Gruppen so eingeteilt werden, wie ich das haben möchte.
Danke für Deine Hilfe. Werde mir das Beispiel morgen mal in Ruhe anschaun. Sieht aber so aus, als sei es genau das was ich gesucht habe.