Verstehen der Wortgrenzenfunktionalität in regulären PHP-Ausdrücken
Wenn Sie versuchen, Wortgrenzen für den Abgleich bestimmter Wörter im Inhalt mithilfe regulärer Ausdrücke in PHP zu implementieren, Es ist wichtig, ihr genaues Verhalten zu verstehen. Beim Testen können jedoch unerwartete Ergebnisse auftreten.
Im bereitgestellten Beispiel wurde der Ausdruck „^|b@nimal/i“ verwendet, um das Wort „cat“ nur dann zu finden, wenn es am Anfang eines anderen steht Wort. Die Ergebnisse waren jedoch kontraintuitiv und führten zu Verwirrung darüber, wie PHP Wortgrenzen bestimmt.
Der Schlüssel zum Verständnis der Wortgrenzenübereinstimmung liegt in der Natur von b. Dieser Indikator stimmt mit dem Übergangspunkt zwischen einem W (Wortzeichen) und einem W (Nicht-Wortzeichen) überein. Damit eine Übereinstimmung erfolgreich ist, muss vor dem gewünschten Zeichen ein Wortzeichen vorhanden sein.
Betrachten Sie das erste Beispiel:
preg_match("/(^|\b)@nimal/i", "something@nimal", $match);
Der Ausdruck entspricht einer Wortgrenze zwischen „g“ und „@“, da „g“ ein Wortzeichen und „@“ ein Nicht-Wortzeichen ist.
Im zweiten Beispiel:
preg_match("/(^|\b)@nimal/i", "something!@nimal", $match);
Es findet keine Übereinstimmung statt, da kein Wort vorhanden ist Zeichen vor „@“. Sowohl „!“ und „@“ sind keine Wortzeichen.
Um das Problem zu beheben, beginnen Sie mit einem Wortzeichen vor dem Zeichen, das Sie abgleichen möchten. Dadurch wird das Vorhandensein einer gültigen Wortgrenze sichergestellt.
Das obige ist der detaillierte Inhalt vonWie verwende ich Wortgrenzen in regulären PHP-Ausdrücken richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!