Dieses Mal werde ich Ihnen eine detaillierte Erklärung der Verwendung regulärer PHP-Assertionen mit Nullbreite geben. Was sind die Vorsichtsmaßnahmen bei der Verwendung von PHP-Assertionen mit regulärer Nullbreite? sehen.
Das Beispiel in diesem Artikel beschreibt die Behauptung der Nullbreite eines regulären Ausdrucks. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Vorwort
① Was ist eine Behauptung mit der Breite Null und warum wird sie verwendet? eine Behauptung mit der Breite Null
② So verwenden Sie die Behauptung mit der Breite Null
Konzept
Behauptung mit der Breite Null, die meisten Stellen definieren sie Dies wird verwendet, um bestimmte Inhalte zu finden (Aber es enthält keine Dinge vor oder nach diesen Inhalten), das heißt, ihre Verankerungswirkung wird verwendet, um eine Position anzugeben, die bestimmten Inhalten entsprechen soll Bedingungen (d. h. Behauptungen), daher werden sie auch Behauptungen mit der Breite Null genannt. 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) */</p> <p style="text-align: left;"> 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. </p> <p style="text-align: left;"><span style="font-size: large"><strong>Anti-posteriore Behauptung</strong></span></p> <p style="text-align: left;">Was ist eine anti-posteriore Behauptung, Verwendung (?</p> <pre class="brush:php;toolbar:false">$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)
(?<!ac)wd
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
So implementieren Sie die Fuzzy-Matching-Funktion regulärer Ausdrücke
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung regulärer Behauptungen mit der Breite Null auf Basis von PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!