Maison > Article > développement back-end > Comment empêcher Regex de modifier les balises HTML pendant `preg_replace` ?
Regex pour éviter la modification des balises HTML
Lors de l'exécution de preg_replace sur du contenu HTML, il est essentiel de s'assurer que l'expression régulière ne s'exécute pas par inadvertance modifier les balises HTML. Pour y parvenir, vous pouvez utiliser une assertion pour exclure les correspondances dans les balises HTML.
Considérez le scénario suivant : pour mettre en évidence des mots spécifiques dans une page HTML, vous essayez de les envelopper dans un étiqueter. Cependant, votre expression régulière actuelle, /(, remplace également les instances du mot dans les attributs HTML, tels que l'attribut alt de la balise d'ancrage.
Pour résoudre ce problème, vous pouvez utiliser une assertion anticipée qui vérifie si le le mot apparaît après un > ou avant toute assertion <. Autoriser des longueurs variables, ce qui donne l'expression régulière suivante. approprié :
/(asf|foo|barr)(?=[^>]*(<|$))/
Cette expression régulière garantit que la correspondance se produit après tout > ou avant tout <. Pour une explication détaillée de cette syntaxe d'assertion, reportez-vous à http://www.regular-expressions.info. /lookaround.html. En incorporant cette assertion dans votre regex, vous pouvez exclure les correspondances dans les balises HTML et modifier précisément le contenu en dehors des balises.
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!