Heim  >  Artikel  >  Web-Frontend  >  Ausführliche Erklärung der drei Regelmäßigkeitsmodi (gierig, zurückhaltend und besitzergreifend)

Ausführliche Erklärung der drei Regelmäßigkeitsmodi (gierig, zurückhaltend und besitzergreifend)

php中世界最好的语言
php中世界最好的语言Original
2018-03-30 11:26:392485Durchsuche

Dieses Mal bringe ich Ihnen eine detaillierte Erklärung der drei Regelmäßigkeitsmodi (gierig, widerstrebend und besitzergreifend) und Vorsichtsmaßnahmen für die Verwendung der drei Regelmäßigkeitsmodi (gierig, widerstrebend und besitzergreifend) Was Sind sie das? Hier sind tatsächliche Fälle.

Gierigkeit (Gierigkeit): Maximale Übereinstimmung

X?, X*, X+, X{n,} ist die maximale Übereinstimmung. Wenn Sie beispielsweise „<.+>“ verwenden möchten, um mit „aaava abb“ übereinzustimmen, erwarten Sie möglicherweise, dass das Ergebnis mit „“ übereinstimmt, aber das tatsächliche Ergebnis Das Ergebnis stimmt überein. Gehen Sie zu „aava “.

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 bis zur erfolgreichen Übereinstimmung ein wenig schrumpfen ): Mindestübereinstimmung

X??, Versuchen Sie länger, ein breiteres Spektrum an Inhalten abzugleichen
String test = "a<tr>aava </tr>abb ";
String reg = "<.+>";
System.out.println(test.replaceAll(reg, "###"));

Ausgabe: a###aava ###abb


Anders als bei Gier erfolgt die Zuordnung im Reluctant-Modus. Doppelter Inhalt

Possessiv (possessiv): Genaue Übereinstimmung

X?+, X*+, Ende des Inhalts, aber im Gegensatz zu Greediness greift der vollständige Abgleich nicht mehr zurück und versucht, einen kleineren Bereich abzugleichen
String test = "a<tr>aava </tr>abb ";
String reg = "<.+?>";
System.out.println(test.replaceAll(reg, "###"));

Ausgabe: aaava abb

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Für weitere spannende Informationen beachten Sie bitte andere php-bezogene Artikel:


Ausführliche Erklärung zur Verwendung regulärer Ausdrücke unter Linux

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, "###"));

Detaillierte Erklärung zur Verwendung regulärer Ausdrücke

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der drei Regelmäßigkeitsmodi (gierig, zurückhaltend und besitzergreifend). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn