Wie verwende ich Wortgrenzen (\\b) in regulären PHP-Ausdrücken korrekt für eine präzise Zeichenfolgenübereinstimmung?

Patricia Arquette
Freigeben: 2024-10-21 07:23:30
Original
1080 Leute haben es durchsucht

How to Correctly Use Word Boundaries (\b) in PHP Regular Expressions for Precise String Matching?

Klärung der Wortgrenzen für reguläre Ausdrücke in PHP

Bei der Arbeit mit regulären Ausdrücken in PHP ist das Verständnis der Wortgrenzen (b) für präzise Zeichenfolgen von entscheidender Bedeutung passend. Dieses Trennzeichen markiert den Übergang zwischen Wortzeichen (w) und Nichtwortzeichen (W).

In dem bereitgestellten Beispiel besteht die Absicht darin, bestimmte Wörter, einschließlich des Wortes „Katze“, zuzuordnen und dabei zu prüfen, ob dies der Fall ist beginnt oder beendet ein Wort. Die erwarteten Ergebnisse werden jedoch nicht erreicht.

Lassen Sie uns das Problem aufschlüsseln:

Erster Ausdruck:

preg_match("/(^|\b)@nimal/i", "something@nimal", $match);
Nach dem Login kopieren
  1. Der Gruppe (^|b) entspricht entweder dem Anfang der Zeichenfolge oder einer Wortgrenze.
  2. In der angegebenen Zeichenfolge „something@nimal“ steht vor „@“ kein Wortzeichen, sodass die Gruppe mit einem übereinstimmt leere Zeichenfolge.
  3. Folglich wird @nimal mit dem folgenden „@nimal“ abgeglichen, das das „@“-Symbol enthält.

Zweiter Ausdruck:

preg_match("/(^|\b)@nimal/i", "something!@nimal", $match);
Nach dem Login kopieren
  1. Auch hier entspricht die Gruppe (^|b) dem Anfang der Zeichenfolge oder einer Wortgrenze.
  2. In diesem Fall steht ein Wortzeichen „g“ davor „!“, sodass die Gruppe mit einer nicht leeren Zeichenfolge übereinstimmt.
  3. Allerdings zwischen „!“ und „@“ gibt es kein Wortzeichen, also keine Wortgrenze.
  4. Infolgedessen stimmt die Gruppe nicht überein und es wird keine Übereinstimmung gefunden.

Lösung:

Um das Problem anzugehen, ist es wichtig zu verstehen, dass Wortgrenzen nur dann übereinstimmen, wenn ein Übergang von einem Wortzeichen zu einem Nichtwortzeichen erfolgt. Im ersten Fall wird vor „@“ eine Wortgrenze erstellt, während im zweiten Fall zwischen „!“ keine solche Grenze existiert. und „@“.

Daher lautet der korrekte Ausdruck zum Zuordnen von Wörtern, die mit Wortzeichen beginnen und enden:

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

Das obige ist der detaillierte Inhalt vonWie verwende ich Wortgrenzen (\\b) in regulären PHP-Ausdrücken korrekt für eine präzise Zeichenfolgenübereinstimmung?. 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