Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erläuterung von Beispielen für die Zusicherung regulärer Ausdrücke mit der Breite Null

Ausführliche Erläuterung von Beispielen für die Zusicherung regulärer Ausdrücke mit der Breite Null

巴扎黑
巴扎黑Original
2017-06-16 11:25:531429Durchsuche

In diesem Artikel wird hauptsächlich die Behauptung der Nullbreite vorgestellt. Er stellt kurz das Konzept, die Klassifizierung, die PHP-Implementierungsfähigkeiten und die damit verbundenen Vorsichtsmaßnahmen für die Behauptung der Nullbreite vor.

Beispiele von Dieser Artikel beschreibt die Zusicherung regulärer Ausdrücke mit der Breite Null. 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. Nach meinem Verständnis wird eine Übereinstimmungssuche vor oder nach einer Zeichenfolge mit einer begrenzten Position durchgeführt. 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=&#39;/bc(?=gw)/&#39;;
$str=preg_match($parent,$str,$match);
var_dump($match);
/**
输出结果:
int 1
array (size=1) 
  0 => string &#39;bc&#39; (length=2)
  */

Analyse: Suchen Sie zuerst die GW-Position in der Zeichenfolge „abcgwcab“, bestätigen Sie, dass sie wahr ist, und dann Übereinstimmung v. Chr. 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=&#39;/bc(?!ww)gw/&#39;;
$str=preg_match($parent,$str,$match);
var_dump($str);
var_dump($match);
/**
输出:
int 1
array (size=1)
 0 => string &#39;bcgw&#39; (length=4)
*/

Analyse: Bestimmen Sie zuerst, ob die Zeichenfolge bc enthält, dann bestimmen Sie, ob darauf ein ww folgt, und schließlich spiel gw. 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=&#39;/(?<=gw)ca/&#39;;
$str=preg_match($parent,$str,$match);
var_dump($str);
var_dump($match);
/**
输出结果:
int 1
array (size=1)
 0 => string &#39;ca&#39; (length=2)
*/

Analyse: Der erste Schritt besteht darin, herauszufinden, ob die Das Zeichen „abcgwcab“ enthält Wenn gw vorhanden ist, ist das Rückgabeergebnis wahr. Fahren Sie dann mit dem zweiten Schritt fort, um festzustellen, ob nach gw ca steht.

Anti-posteriore Behauptung

Was ist eine anti-posteriore Behauptung, Verwendung (?

$str="abcgwcab";
$parent=&#39;/(?<!bc)gw/&#39;;
$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 ihm ein bc vorangestellt ist, sodass es „false“ zurückgibt

Übungsfrage

Beispiel 1:

Bestimmen Sie, ob eine Zeichenfolge „abc“ enthält und ob eine oder mehrere Zahlen davor stehend+(?=abc)
Beispiel 2:

Bestimmen Sie, ob die Zeichenfolge zwei aufeinanderfolgende Zahlen enthält, gefolgt von einem Buchstaben. (?<=dd)w
Beispiel 3:

Bestimmen Sie, ob die Zeichenfolge drei aufeinanderfolgende Zahlen enthält, gefolgt von dem drei Zahlen Nicht 55d{3} (?!55)
Beispiel 4:

Bestimmen Sie, ob eine Zeichenfolge eine Kombination aus Buchstaben und Zahlen enthält und kein ac vorangestellt ist(?<!ac)wd

ZusammenfassungWas ist der Unterschied zwischen Prädikat und Nachbehauptung?

Eine Präemptionsbehauptung ist ein regulärer Ausdruck vor einer Urteilsbehauptung und einer Nachbehauptung steht vor einer Urteilsaussage. Behauptungen stehen vor anderen regulären Ausdrücken. Die „ersten“ und „letzten“ Aussagen sind hier die Reihenfolge anderer übereinstimmender Aussagen im regulären Ausdruck

.

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen für die Zusicherung regulärer Ausdrücke mit der Breite Null. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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