Gierigkeit (gieriger Typ): Maximale Übereinstimmung
X?, X*, X+, X{n,} ist die maximale Übereinstimmung. Wenn Sie beispielsweise „<.+>“ verwenden möchten, um mit „a
Im Greediness-Modus wird versucht, einen möglichst großen Bereich abzugleichen, bis der gesamte Inhalt übereinstimmt. Zu diesem Zeitpunkt, wann Wenn festgestellt wird, dass die Übereinstimmung nicht erfolgreich sein kann, wird der Übereinstimmungsbereich ein wenig kleiner, bis die Übereinstimmung erfolgreich ist.
String test = "a<tr>aava </tr>abb "; String reg = "<.+>"; System.out.println(test.replaceAll(reg, "###"));
Ausgabe: a### abb
Reluctant (Faulheit) (Reluctant Type): Mindestübereinstimmung
X??, Match
Im Reluctant-Modus wird kein Versuch mehr unternommen, solange die Übereinstimmung erfolgreich ist um einen größeren Bereich von Inhalten abzugleichen
String test = "a<tr>aava </tr>abb "; String reg = "<.+?>"; System.out.println(test.replaceAll(reg, "###"));
Ausgabe: a###aava ###abb
Im Gegensatz zu Greediness wird der Inhalt im Reluctant-Modus zweimal abgeglichen
Possessiv (Possessiv): Genaue Übereinstimmung
X?+, X*+, X++, X {n, }+ ist eine vollständige Übereinstimmung. Das Hinzufügen von + wird zu einer vollständigen Übereinstimmung
String test = "a<tr>aava </tr>abb "; String reg = "<.++>"; String test2 = "<tr>"; String reg2 = "<tr>"; System.out.println(test.replaceAll(reg, "###")); System.out.println(test2.replaceAll(reg2, "###"));