In diesem Artikel wird hauptsächlich die Behauptung der Nullbreite von regulären Ausdrücken vorgestellt und kurz das Konzept, die Klassifizierung und die PHP-Implementierungsfähigkeiten sowie die zugehörigen Hinweise der Behauptung der Nullbreite vorgestellt erforderlich Freunde können sich beziehen auf
Dieser Artikel erklärt die Nullbreitenbehauptung regulärer Ausdrücke anhand von Beispielen. Teilen Sie es wie folgt mit allen als Referenz:
Vorwort
Ich habe bereits einen Artikel über reguläre Ausdrücke geschrieben (http (:/ /www.jb51.net/article/111359.htm) Reguläre Elemente werden in diesem Artikel ausführlich vorgestellt, die Einführung von Behauptungen mit der Breite Null wird jedoch selten erwähnt. Fügen Sie nun diesen Inhalt hinzu. In diesem Artikel lösen wir hauptsächlich die folgenden Probleme:
① Was ist eine Behauptung mit der Breite Null, warum sollten wir eine Behauptung mit der Breite Null verwenden?
② Wie verwende ich eine Behauptung mit der Breite Null
Konzept
Die an den meisten Stellen definierte Nullbreitenbehauptung wird verwendet, um Dinge vor oder nach bestimmten Inhalten zu finden (diese Inhalte jedoch nicht eingeschlossen). Das heißt, sie sind wie b ^ $ < Eine solche Verankerung wird verwendet, um einen Ort anzugeben, der bestimmte Bedingungen (dh Behauptungen) erfüllen soll. Daher werden sie auch als Behauptungen mit Nullbreite bezeichnet. Mein Verständnis besteht darin, eine passende Suche vor oder nach einer -Zeichenfolge an einer begrenzten Position durchzuführen. Daher ist der Ausführungsprozess von Behauptungen mit der Breite Null in zwei Situationen unterteilt. Wenn es sich um eine Vorwärtsbehauptung handelt, sollte der erste Schritt darin bestehen, zu beurteilen, ob die Behauptung wahr ist (dh ob sie bestimmte Bedingungen erfüllt). Der zweite Schritt besteht darin, mit dem nächsten Schritt fortzufahren, wenn die Bedingungen erfüllt sind. Wenn es sich um eine umgekehrte Behauptung handelt, besteht der erste Schritt darin, die Reihenfolge der regulären Ausdrücke abzugleichen. Der zweite Schritt besteht darin, festzustellen, ob eine umgekehrte Bestätigung vorliegt, wenn eine umgekehrte Bestätigung vorliegt.
Positive Lookahead-Behauptung
Was ist eine positive Lookahead-Behauptung? Suchen und Abgleichen vor der entsprechenden Position in der Zeichenfolge mithilfe von (?= exp) Matching Die Position vor exp.
Beispiel
$str="abcgwcab"; $parent='/bc(?=gw)/'; $str=preg_match($parent,$str,$match); var_dump($match); /** 输出结果: int 1 array (size=1) 0 => string 'bc' (length=2) */
Analyse: Suchen Sie zuerst die GW-Position in der Zeichenfolge „abcgwcab“, bestätigen Sie, dass sie wahr ist, und passen Sie dann bc an. Wenn der reguläre Ausdruck als $parent='/bc(?=gw)ca/' geschrieben ist, ist die Übereinstimmung nicht erfolgreich.
Anti-Lookahead-Behauptung
Was ist eine Anti-Lookahead-Behauptung? Verwenden Sie (?!exp), um abzugleichen, was nicht von exp gefolgt wird .
Beispiel:
$str="abcgwcab"; $parent='/bc(?!ww)gw/'; $str=preg_match($parent,$str,$match); var_dump($str); var_dump($match); /** 输出: int 1 array (size=1) 0 => string 'bcgw' (length=4) */
Analyse: Bestimmen Sie zuerst, ob die Zeichenfolge bc enthält, dann bestimmen Sie, ob ww folgt, und passen Sie schließlich gw an. Es ist ersichtlich, dass vor und nach der umgekehrten Behauptung weitere Übereinstimmungsbedingungen hinzugefügt werden können.
Behauptung vor und nach
Was eine Behauptung vor und nach ist, ist die Suche und Übereinstimmung nach der entsprechenden Position in der Zeichenfolge ( ?<= exp) entspricht der Position nach exp
Beispiel:
$str="abcgwcab"; $parent='/(?<=gw)ca/'; $str=preg_match($parent,$str,$match); var_dump($str); var_dump($match); /** 输出结果: int 1 array (size=1) 0 => string 'ca' (length=2) */
Analyse: Der erste Schritt besteht darin, herauszufinden, ob das Zeichen „abcgwcab“ gw enthält. Das Rückgabeergebnis ist wahr , und fahren Sie dann mit dem zweiten Schritt Schritt 1 fort: Finden Sie heraus, ob nach gw ca steht.
Anti-posteriore Behauptung
Was ist eine anti-posteriore Behauptung, Verwendung (?
$str="abcgwcab"; $parent='/(?<!bc)gw/'; $str=preg_match($parent,$str,$match); var_dump($str); var_dump($match); /** int 0 array (size=0) empty */
Analyse: Passen Sie zuerst gw in der Zeichenfolge an und bestimmen Sie dann, ob ein bc vorangestellt ist, sodass „false“ zurückgegeben wird. Bestimmen Sie, ob eine Zeichenfolge „abc“ enthält und ob sie eins oder enthält mehr Zahlen davor
Beispiel 2: Bestimmen Sie, ob die Zeichenfolge zwei aufeinanderfolgende Zahlen enthält und sie einen Buchstaben dahinter enthält
Beispiel 3: d+(?=abc)
Bestimmen Sie, ob die Zeichenfolge drei aufeinanderfolgende Zahlen enthält und auf die drei Zahlen nicht 55 folgt
Beispiel 4: (?<=dd)w
Bestimmen Sie, ob eine Zeichenfolge eine Kombination aus Buchstaben und Zahlen enthält, und Es wird kein ac vorangestellt Zuerst und zuletzt finden Sie hier die Reihenfolge der anderen übereinstimmenden Aussagen im regulären Ausdruck >
d{3} (?!55)
Online-Testtool für reguläre Ausdrücke: (?<!ac)wd
Online-Generierungstool für reguläre Ausdrücke:
http://tools.jb51.net/regex/create_reg
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen für Assertionen mit der Breite Null für reguläre Ausdrücke_reguläre Ausdrücke. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!