Bonjour,
J'ai besoin d'écrire une expression régulière et je galère... Je galère car je voudrais réussir à le faire en une seule expression régulière, pour la beauté du geste. Le faire en plusieurs étapes, je saurais.
Voilà l'idée : Le nom de mon club est le MYCA, écrit dans une police particulière. Et un certain bateau du club s'appelle le MYCAJU. Et bien sûr, le mot MYCA revient également un peu partout dans les URLs, car c'est naturel de vouloir nommer des répertoires "dossier MYCA" ...
Je voudrais traiter les posts sur le site de telle manière que :
MYCA soit remplacé par <span class="myca">MYCA</span>, sauf s'il est compris dans un autre mot comme MYCAJU, et sauf s'il est dans une adresse d'une URL.
Pour la première et deuxième partie, c'est assez simple :
Code :
- $stringEntree = preg_replace('#([\s\t\n\r>])(MYCA)([<\.\s\t\n\r])#','$1<span class="myca">MYCA</span>$3', $stringEntree);
|
MAIS
Pour dire que je ne veux pas faire ce remplacement si je me trouve dans une URL, je n'y arrive pas.
J'ai tenté sans conviction :
Code :
- $stringEntree = preg_replace('#[^(?:<a href=" )]([\s\t\n\r>])(MYCA)([<\.\s\t\n\r])[^(?:</a> )]#U','$1<span class="myca mot_myca">MYCA</span>$3', $stringEntree);
|
Mais ça ne marche évidemment pas.
Je n'ai pas d'idée pour réussir à le faire en un seul preg_replace.
Une idée ?