Maison  >  Article  >  développement back-end  >  Comment utiliser des expressions régulières PHP pour faire correspondre des mots-clés à l'exclusion de ceux des balises d'ancrage ?

Comment utiliser des expressions régulières PHP pour faire correspondre des mots-clés à l'exclusion de ceux des balises d'ancrage ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-20 13:32:02667parcourir

How to Use PHP Regular Expressions to Match Keywords Excluding Those in Anchor Tags?

Comment faire correspondre des mots-clés en dehors des balises d'ancrage HTML à l'aide d'expressions régulières PHP

En PHP, il est possible de faire correspondre et de remplacer des mots-clés spécifiques dans le contenu HTML en utilisant des expressions régulières. Un scénario courant est la nécessité de faire correspondre les mots-clés tout en excluant leurs occurrences dans les balises d'ancrage HTML. Tenez compte des exigences suivantes :

  • Faites correspondre le mot-clé « mot-clé » et son équivalent en gras « mot-clé », en ignorant les instances dans les balises d'ancrage.
  • Problème : Les balises d'ancrage avec « mot-clé » comme texte du lien ne doivent pas être modifiées, telles que « mot-clé » et « mot-clé déjà lié ».

Pour relever ce défi, nous pouvons utiliser une solution d'expression régulière en PHP qui garantit que les correspondances de mots clés ne se produisent qu'en dehors des balises d'ancrage.

L'extrait de code suivant montre comment y parvenir :

<code class="php">$str = preg_replace('~Moses(?!(?>[^<]*(?:<(?!/?a\b)[^<]*)*)</a>)~i',
                    '<a href="novo-mega-link.php"></a>', $str);</code>

Explication :

Le composant principal de cette expression régulière est l'anticipation négative. Cette analyse anticipée vérifie la présence de balises d'ancrage fermantes "" et d'une balise d'ancrage ouvrante "" dans cet ordre. Si ce modèle est trouvé, l'expression dans la recherche anticipée est considérée comme vraie et la correspondance du mot clé est annulée.

Par conséquent, l'expression régulière garantit que les correspondances sont effectuées uniquement lorsque le mot clé apparaît en dehors des balises d'ancrage HTML. Cela nous permet de remplacer ultérieurement le mot-clé par une balise d'ancrage renvoyant vers une URL spécifiée.

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!

Déclaration:
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