Wann treten Wortgrenzen in regulären PHP-Ausdrücken auf?

Linda Hamilton
Freigeben: 2024-10-21 07:27:02
Original
155 Leute haben es durchsucht

When Do Word Boundaries Occur in PHP Regular Expressions?

Wortgrenzensemantik in regulären PHP-Ausdrücken

In PHP werden Wortgrenzen mithilfe des b-Metazeichens implementiert, das Übergänge zwischen Wortzeichen ( w) und Nicht-Wort-Zeichen (W). Allerdings kann sein Verhalten nuanciert sein, wie die von Ihnen bereitgestellten Testfälle zeigen.

Unerwartete Wortgrenzen

In Ihren Testfällen haben Sie die folgenden Ergebnisse erwartet:

preg_match("/(^|\b)@nimal/i", "something@nimal", $match); // false
preg_match("/(^|\b)@nimal/i", "something!@nimal", $match); // true
Nach dem Login kopieren

Aber die tatsächlichen Ergebnisse waren umgekehrt:

preg_match("/(^|\b)@nimal/i", "something@nimal", $match); // true
preg_match("/(^|\b)@nimal/i", "something!@nimal", $match); // false
Nach dem Login kopieren

Diese Anomalie tritt auf, weil das b-Metazeichen beim Übergang von einem Wortzeichen (w) zu einem Nicht-Wortzeichen (W) übereinstimmt. . Im ersten Fall, „something@nimal“, liegt die Wortgrenze zwischen „g“ (einem Wortzeichen) und „@“ (einem Nicht-Wortzeichen), was zu einer Übereinstimmung führt. Im zweiten Fall, „something!@nimal“, gibt es jedoch keine Wortgrenze zwischen „!“ und „@“, da es sich bei beiden nicht um Wortzeichen handelt.

Übereinstimmende Wortanfänge

Um Wörter zuzuordnen, die mit einer bestimmten Reihenfolge beginnen, müssen Sie sicherstellen, dass dies der Fall ist eine Wortgrenze (b) vor Ihrer Zielsequenz. Um beispielsweise Wörter abzugleichen, die mit „@nimal“ beginnen, würden Sie den folgenden regulären Ausdruck verwenden:

preg_match("/(\b)@nimal/i", "something@nimal", $match); // true
preg_match("/(\b)@nimal/i", "something!@nimal", $match); // false
Nach dem Login kopieren

In diesem regulären Ausdruck stellt die Wortgrenze (b) sicher, dass es einen Übergang von einem Wortzeichen gibt zu einem Nicht-Wort-Zeichen vor „@nimal.“ Dadurch werden Wörter gefunden, die mit „@nimal“ beginnen, aber keine Wörter, die „@nimal“ in der Mitte haben, wie zum Beispiel „ducat.“

Das obige ist der detaillierte Inhalt vonWann treten Wortgrenzen in regulären PHP-Ausdrücken auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!