Maison > Article > interface Web > Explication détaillée des exemples d'assertions de largeur nulle d'expressions régulières_expressions régulières
Cet article présente principalement l'assertion de largeur nulle de expression régulière, et présente brièvement le concept, la classification et les compétences d'implémentation PHP ainsi que les notes associées de l'assertion de largeur nulle, qui sont obligatoire Les amis peuvent se référer à
Cet article explique l'assertion de largeur nulle des expressions régulières avec des exemples. Partagez-le avec tout le monde pour référence, comme suit :
Avant-propos
J'ai déjà écrit un article sur les expressions régulières (http (:/ /www.jb51.net/article/111359.htm) Les réguliers sont présentés en détail dans cet article, mais l'introduction des assertions de largeur nulle est rarement mentionnée. Ajoutez maintenant ce contenu. Dans cet article, nous résolvons principalement les problèmes suivants :
① Qu'est-ce qu'une assertion de largeur nulle, pourquoi devrions-nous utiliser une assertion de largeur nulle
② Comment utiliser une assertion de largeur nulle
Concept
L'assertion de largeur nulle, définie dans la plupart des endroits, est utilisée pour trouver des éléments avant ou après certains contenus (mais n'incluant pas ces contenus), c'est-à-dire qu'ils sont comme b ^ $ < Un tel ancrage est utilisé pour spécifier un emplacement qui doit répondre à certaines conditions (c'est-à-dire des assertions), c'est pourquoi elles sont é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='/bc(?=gw)/'; $str=preg_match($parent,$str,$match); var_dump($match); /** 输出结果: int 1 array (size=1) 0 => string 'bc' (length=2) */
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/';
Assertion anti-anti-anticipation
Qu'est-ce qu'une assertion anti-anti-anticipation ? Utilisez (?!exp) pour faire correspondre ce qui n'est pas suivi d'exp ? .
Exemple :
$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='/(?<=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 : La première étape consiste à déterminer si le caractère "abcgwcab" contient gw, le résultat renvoyé est vrai , puis passez à la deuxième étape Étape 1 : recherchez s'il y a ca après gw.
Affirmation anti-postérieure
Qu'est-ce qu'une assertion anti-postérieure, utiliser (?
$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 devantExemple 2 :
Déterminez s'il y a deux nombres consécutifs dans la chaîne et qu'elle contient une lettre aprèsd+(?=abc)
Exemple 3 :
(?<=dd)w
Exemple 4 :
d{3} (?!55)
(?<!ac)wd
PS : Voici deux outils d'expression régulière très pratiques pour vous :
JavaScriptOutil de test d'expressions régulières en ligne : http://tools .jb51.net/regex/javascript
Outil de génération d'expressions régulières en ligne : http://tools.jb51.net/regex/create_reg
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!