Maison  >  Article  >  interface Web  >  Explication détaillée de l'utilisation des assertions PHP régulières de largeur nulle

Explication détaillée de l'utilisation des assertions PHP régulières de largeur nulle

php中世界最好的语言
php中世界最好的语言original
2018-03-29 15:58:591540parcourir

Cette fois, je vais vous apporter une explication détaillée de l'utilisation des assertions PHP régulières de largeur nulle. Quelles sont les précautions lors de l'utilisation d'assertions PHP régulières de largeur nulle ? regarder.

L'exemple de cet article décrit l'assertion de largeur nulle de expression régulière. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Avant-propos

① Qu'est-ce qu'une assertion de largeur nulle et pourquoi l'utiliser une assertion de largeur nulle
② Comment utiliser l'assertion de largeur nulle

Concept

Assertion de largeur nulle, la plupart des endroits la définissent comme ça, utilisé pour trouver dans certains contenus (Mais cela n'inclut pas les éléments avant ou après ces contenus), c'est-à-dire que leur effet d'ancrage comme b ^ $ < conditions (c'est-à-dire des assertions), elles sont donc également appelées assertions de largeur nulle. Je crois comprendre qu'il faut effectuer une recherche correspondante avant ou après une chaîne dans une position limitée. Par conséquent, le processus d'exécution des assertions de largeur nulle est divisé en deux situations. S'il s'agit d'une assertion directe, cela devrait être comme ceci. La première étape consiste à juger si l'assertion est vraie (c'est-à-dire si elle remplit certaines conditions). . La deuxième étape consiste à passer à l'étape suivante si les conditions sont remplies. Rechercher des correspondances en une seule étape. S'il s'agit d'une assertion inverse, la première étape consiste à faire correspondre l'ordre des expressions régulières. La deuxième étape consiste à déterminer si l'endossement inversé est satisfait en cas d'endossement inversé.

Assertion d'anticipation positive

Qu'est-ce qu'une assertion d'anticipation positive consiste à rechercher et à faire correspondre avant la position correspondante dans la chaîne, en utilisant (?= exp) correspondant La position devant exp.

Exemple

$str="abcgwcab";
$parent=&#39;/bc(?=gw)/&#39;;
$str=preg_match($parent,$str,$match);
var_dump($match);
/**
输出结果:
int 1
array (size=1) 
  0 => string 'bc' (length=2)
  */</p>
<p style="text-align: left;">Analyse : recherchez d'abord la position gw dans la chaîne "abcgwcab", affirmez-la comme étant vraie, puis faites correspondre bc. Si l'expression régulière est écrite sous la forme $parent='/bc(?=gw)ca/'; </p>
<p style="text-align: left;"><span style="font-size: large"><strong>Assertion anti-anti-anticipation</strong></span></p>
<p style="text-align: left;">Qu'est-ce qu'une assertion anti-anti-anticipation ? Utilisez (?!exp) pour faire correspondre ce qui n'est pas suivi d'exp ? . </p>
<p style="text-align: left;">Exemple : </p>
<pre class="brush:php;toolbar:false">$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 : Déterminez d'abord si la chaîne contient bc, puis déterminez si elle est suivie de ww, et enfin correspondez à gw. On peut voir que d’autres conditions de correspondance peuvent être ajoutées avant et après l’assertion inverse.

Assertion avant et après

Qu'est-ce qu'une assertion avant et après, c'est rechercher et faire correspondre après la position correspondante dans la chaîne, (?<= exp) correspond à la position après exp

Exemple :

$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 'ca' (length=2)
*/</p>
<p style="text-align: left;"> Analyse : La première étape consiste à déterminer si le caractère "abcgwcab" contient gw, le résultat de retour est true, puis passez à la deuxième étape Étape 1 : recherchez s'il y a ca après gw. </p>
<p style="text-align: left;"><span style="font-size: large"><strong>Affirmation anti-postérieure</strong></span></p>
<p style="text-align: left;">Qu'est-ce qu'une assertion anti-postérieure, utiliser (?</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 : Faites d'abord correspondre gw dans la chaîne, puis déterminez si elle est précédée de bc, elle renvoie donc false >

Déterminez si une chaîne contient 'abc' et si elle en contient un ou. plus de chiffres devant

Exemple 2 :

Déterminez s'il y a deux chiffres consécutifs dans la chaîne et si elle contient une lettre après

d+(?=abc) Exemple 3 :

Déterminez si la chaîne contient trois nombres consécutifs, et les trois nombres ne sont pas suivis de 55

(?<=dd)wExemple 4 :

Déterminez si une chaîne contient une combinaison de lettres et de chiffres, et il n'est pas précédé d'ac

d{3} (?!55)

Résumé

(?<!ac)wd

Assertion de prédicat Quelle est la différence entre un post-prédicat et un post-prédicat ? premier et dernier, voici l'ordre des autres assertions correspondantes dans l'expression régulière

PS : Voici deux outils d'expression régulière très pratiques pour vous :

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Comment implémenter la fonction de correspondance floue des expressions régulières

Utiliser des expressions régulières pour vérifier et déterminer mots de passe Force et faiblesse et invites

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn