Comment exclure les correspondances dans les balises HTML dans les expressions régulières PHP
Lorsque vous effectuez une recherche et un remplacement d'expression régulière sur un document HTML, il est essentiel pour garantir que le remplacement ne modifie pas par inadvertance les balises HTML. Pour relever ce défi, voici une solution utilisant une assertion anticipée dans les expressions régulières PHP :
$pattern = "/(asf|foo|barr)(?=[^>]*(<|$))/";
Explication :
Par conséquent, cette expression régulière ignore les correspondances qui se produisent dans les balises HTML, empêchant ainsi les modifications indésirables du code HTML. structure. L'expression peut être utilisée dans preg_replace() pour cibler sélectivement le texte en dehors des balises HTML.
Par exemple, considérons le texte HTML suivant :
<a href="example.com" alt="yasar home page">yasar</a>
Utilisation de la fonction preg_replace() avec la fonction modèle fourni, vous pouvez remplacer les occurrences de yasar en dehors de la balise d'ancrage par une balise span personnalisée, ce qui donne :
<a href="example.com" alt="yasar home page">yasar</a>
yasar
Dans cet exemple, l'attribut alt dans la balise d'ancrage reste inchangé.
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!