Expression régulière PHP en action : correspondance des attributs HTML

PHPz
Libérer: 2023-06-22 21:34:01
original
1592 Les gens l'ont consulté

Dans le développement Web, les attributs HTML sont l'un des éléments très importants. Cependant, dans le développement réel, il est souvent nécessaire de faire correspondre et d'extraire des attributs. A cette époque, les expressions régulières deviennent un outil très efficace.

Cet article présentera comment utiliser les expressions régulières PHP pour faire correspondre les attributs HTML et l'expliquera avec des cas réels. Tout d’abord, nous devons comprendre la structure générale des attributs HTML. Un attribut HTML se compose généralement d'un nom d'attribut et d'une valeur d'attribut, reliés par un signe égal. Par exemple : class="container", id="header", etc. Par conséquent, nous devons utiliser des expressions régulières pour faire correspondre avec précision les noms d’attribut et les valeurs d’attribut.

Tout d'abord, examinons un cas simple. Supposons que nous ayons le code HTML suivant :

<div class="container">
  <h1 id="header">Welcome to our website!</h1>
  <p>Here you can find lots of interesting articles.</p>
</div>
Copier après la connexion

Nous devons y faire correspondre l'attribut class. Vous pouvez utiliser l'expression régulière suivante :

preg_match('/class="([^"]*)"/', $html, $matches);
Copier après la connexion

Cette expression régulière signifie : match class. =" chaîne, puis recherchez tous les caractères qui ne contiennent pas de guillemets immédiatement après, jusqu'à ce que les guillemets apparaissent à nouveau. De cette façon, nous pouvons faire correspondre correctement la valeur de l'attribut de classe. Une fois terminé, nous pouvons obtenir les résultats correspondants via la variable $matches

Ensuite, prenons un exemple légèrement plus compliqué. Supposons que nous voulions faire correspondre tous les attributs contenant le préfixe data- et afficher leurs noms et valeurs d'attribut. montré ci-dessous :

preg_match_all('/data-(w+)="([^"]*)"/', $html, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
  echo '属性名:' . $match[1] . ',属性值:' . $match[2] . '<br>';
}
Copier après la connexion

Cette expression régulière signifie : faites correspondre le nom de l'attribut commençant par data-, n'importe quelle lettre ou chiffre, et la valeur de l'attribut au milieu (1*) est la même que dans l'exemple précédent. la fonction preg_match_all, nous pouvons le faire en même temps. Correspond à tous les attributs qui répondent aux exigences et affiche leurs noms d'attribut et leurs valeurs d'attribut en parcourant le tableau $matches

Enfin, regardons une question courante : comment faire correspondre les attributs. dont les valeurs d'attribut contiennent des caractères spécifiques ? À ce stade, nous devons utiliser la recherche avant dans l'expression régulière, comme indiqué ci-dessous :

preg_match_all('/class="([^"]*alert[^"]*)"/', $html, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
  echo '属性值中包含“alert”的class属性值为:' . $match[1] . '<br>';
}
Copier après la connexion

Cette expression régulière signifie : faire correspondre la chaîne de class=", puis trouver n'importe quel caractère qui ne contient pas de guillemets immédiatement après, jusqu'à ce qu'un guillemet apparaisse à nouveau. Dans cette section de caractères, la chaîne « alert » doit être incluse. En utilisant la recherche avant, nous pouvons faire correspondre exactement les valeurs d'attribut contenant des caractères spécifiques.

En résumé, à travers les cas ci-dessus, nous pouvons voir que dans le développement réel, l'utilisation des expressions régulières est très flexible et puissante. J'espère que cet article pourra aider les lecteurs à mieux maîtriser les expressions régulières PHP et à explorer leur énorme valeur dans le développement réel.


  1. "

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!