Maison > développement back-end > tutoriel php > Explication détaillée de la fonction preg_match_all dans les expressions régulières php

Explication détaillée de la fonction preg_match_all dans les expressions régulières php

黄舟
Libérer: 2023-03-17 11:04:01
original
12359 Les gens l'ont consulté

Fonction dans l'expression régulière PHP Nous avons déjà créé une fonction preg_match pour vous, je pense que vous en savez tous quelque chose. Alors, quelle est l'utilisation spécifique de la fonction preg_match_all dans l'expression régulière PHP ? Aujourd'hui, nous allons vous amener à comprendre l'explication détaillée de la fonction preg_match_all dans les expressions régulières PHP !

Avant de comprendre les expressions régulières, vous devez maîtriser certaines connaissances de base des expressions régulières couramment utilisées. Si vous vous en souvenez, il est préférable de vous en souvenir. Si vous ne vous en souvenez pas, vous pouvez les rechercher quand. vous devez les utiliser. Juste quelques Le caractère spécial , donc les expressions régulières sont spéciales. Vous pouvez consulter des instructions plus détaillées pour plus de détails.

Pour des instructions détaillées sur la fonction preg_match_all, vous pouvez consulter le manuel PHP. Cet article utilise preg_match_all pour tester l'effet des expressions régulières.

Exemple de code :

$html = &#39;<p id="biuuu">jb51.net</p><p id="biuuu_2">jb51.net2</p><p id="biuuu_3">jb51.net3</p>&#39;;
Copier après la connexion

Exemples d'exigences : Retirez l'ID et le contenu de chaque élément p, tels que biuuu, biuuu_2, biuuu_3, jb51.net, jb51.net2 et jb51.net3 (certaines méthodes de saisie de sites Web couramment utilisées sont mises en correspondance de cette manière)

Analyse :

String est un élément de base Élément HTML , chaque élément p correspond à un identifiant et un contenu, et est indépendant. Considérez d'abord comment extraire la valeur de l'ID et le contenu d'un p, tel que : jb51.net, puis en faire correspondre d'autres similaires. élément. Deux valeurs doivent être extraites d'un p, c'est-à-dire deux expressions correspondantes. La première expression est utilisée pour correspondre à la valeur de l'ID (biuuu) et la deuxième expression est utilisée pour correspondre au contenu de l'ID (jb51.net). ). Les expressions régulières couramment utilisées dans les expressions utilisent des parenthèses, alors les éléments précédents deviendront la forme suivante :

<p id="(biuuu)">(jb51.net)</p> 
<p id="(表达式1)">(表达式2)</p>
Copier après la connexion

D'accord, utilisez les parenthèses ci-dessus pour diviser la zone qui doit correspondre, et Ensuite, voici comment faire correspondre le contenu de chaque expression. Nous supposons qu'un identifiant peut être constitué de lettres, de chiffres ou de traits de soulignement. Cela peut alors être réalisé en utilisant des crochets, comme suit :

<🎜. >Expression 1 :

[a-zA-Z0-9_]+ (表示匹配大小写字母,数字和下划线)
Copier après la connexion
Ensuite, comment faire correspondre l'expression 2, car le contenu de l'ID peut être n'importe quel caractère, mais attention, il ne peut pas correspondre aux caractères < si vous faites correspondre ces deux caractères, le caractère correspondra à tous les p utilisés ultérieurement, il est donc nécessaire d'exclure les éléments commençant par ces deux caractères, c'est-à-dire qui ne correspondent pas aux caractères < ou >, comme suit :


expression Formule 2 :

[^<>]+ (表示不匹配<和>字符)
Copier après la connexion
De cette façon, la sous-expression qui doit être mise en correspondance est réalisée, mais une expression qui doit être mise en correspondance est également nécessaire La méthode. est la suivante :

Expression : / '"(Expression 1)"'>(Expression 2)

/
Faites attention aux guillemets doubles " et / qui doivent être échappés avec des caractères d'échappement , puis insérez les deux premières expressions,

est le suivant :

 &#39;\"([a-z0-9_]+)\"&#39;>/<p id=\"([a-z0-9_]+)\">([^<>]+)<\/p>/
Copier après la connexion
De cette façon, une expression régulière correspondant à la valeur ID et au contenu de chaque L'élément p est implémenté, puis la fonction preg_match_all est utilisée pour tester comme suit :

$html = &#39;<p id="biuuu">jb51.net</p><p id="biuuu_2">jb51.net2</p><p id="biuuu_3">jb51.net3</p>&#39;; 
preg_match_all('/([^<>]+)<\/p>/',$html,$result); 
var_dump($result);
Copier après la connexion
Résultat :

array(3) { 
[0]=> array(3) 
{ [0]=> string(30) "<p id="biuuu">jb51.net</p>" 
  [1]=> string(33) "<p id="biuuu_2">jb51.net2</p>" 
  [2]=> string(33) "<p id="biuuu_3">jb51.net3</p>" 
  } 
[1]=> array(3) { 
  [0]=> string(5) "biuuu" 
  [1]=> string(7) "biuuu_2" 
  [2]=> string(7) "biuuu_3" 
  } 
[2]=> array(3) { 
  [0]=> string(8) "jb51.net" 
  [1]=> string(9) "jb51.net2" 
  [2]=> string(9) "jb51.net3" 
  } 
  }
Copier après la connexion
Il y a trois expressions au total La valeur correspondant à chaque expression. est affiché respectivement et stocké sous la forme d'un tableau. De cette façon, l'ID et le contenu de chaque élément p sont retirés. La chose la plus importante lors de l'utilisation d'expressions régulières est de savoir ce qui est nécessaire, puis d'effectuer une correspondance avec cela, et avoir une idée claire, et utiliser la fonction preg_match_all pour effectuer le débogage de sortie, ce qui est très pratique Résumé :

Après avoir lu cet article et l'article précédent, je pense que chacun a le sien. compréhension et compréhension de ces deux fonctions dans les expressions régulières PHP. J'espère que cela vous aidera. Le travail est utile

Recommandations associées :

Explication détaillée de la fonction preg_match dans les expressions régulières PHP

Cas d'adresse e-mail de vérification des expressions régulières PHP



Exemple d'analyse des expressions régulières php


Introduction détaillée aux expressions régulières php

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal