Chris: Reguläre Ausdrücke

Hallo!

Ich habe eine Frage zu regulären Ausdrücken:

Mit

boolean b = Pattern.matches("a*b","aaaaab");

kann ich ja prüfen, ob der Ausdruck "a*b", also beliebig viele a und dann ein b, auf den rechten String passt. Soweit so gut.

Wenn ich jetzt aber sagen wir 100 Zeichen habe und testen will, ob irgendwo da drin "a*b" passt, egal was außen rum steht, wie mache ich das?

Bei dem obigen test muß ja der ganze rechte String auf den reg Ausdruck passen...

  1. Hallo Chris,

    Wenn Du einen String durchsuchen willst, musst Du direkt die Matcherklasse verwenden. Das ist zwar etwas umständlicher aber sehr viel flexibler und oft auch effizienter, da das kompilieren und ausführen eines Ausdrucks getrennt wird:

    Das folgende Beispiel gibt alle Treffer aus:

    Pattern pattern = pattern.compile("regex");
    Matcher matcher = pattern.matcher("daten");

    while(matcher.find()) {
      System.out.println(matcher.group());
    }

    Grüße

    Daniel