Heim > Web-Frontend > js-Tutorial > Ausführliche Erläuterung von Beispielen für Assertionen mit der Breite Null für reguläre Ausdrücke_reguläre Ausdrücke

Ausführliche Erläuterung von Beispielen für Assertionen mit der Breite Null für reguläre Ausdrücke_reguläre Ausdrücke

微波
Freigeben: 2017-06-28 13:42:48
Original
1405 Leute haben es durchsucht

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=&#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)
  */
Nach dem Login kopieren

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=&#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)
*/
Nach dem Login kopieren

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=&#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)
*/
Nach dem Login kopieren

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=&#39;/(?<!bc)gw/&#39;;
$str=preg_match($parent,$str,$match);
var_dump($str);
var_dump($match);
/**
int 0
array (size=0)
 empty
*/
Nach dem Login kopieren

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)

JavaScript

Online-Testtool für reguläre Ausdrücke: (?<!ac)wd

http://tools .jb51.net/regex/javascript

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!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage