Bonjour, je ne suis pas du tout doué pour les Regex, et je cherche la syntaxe pour en réaliser une.
On va dire que le mot que je veux matcher est ‹ Babar ›.
Je veux capturer Babar tout le temps, sauf s’il est dans le « src » d’une balise img, où dans le « href » d’une balise a.
Je tourne rond depuis deux jours. Quelqu’un peut m’aiguiller ?
J’ai presque tout bon dans preg_replace($patern, $replacement, $text), c’est juste la syntaxe de $patern que je ne trouve pas.
Merci beaucoup, j’ai réussi à avancer, cependant, je bloque sur quelque chose. Est-ce que l’on peut « coupler » une assertion négative arrière avec une assertion négative avant ?
Je m’explique, mon $patern est ainsi : ‹ # › . $item->filtre . ‹ (?!.)(?!." />)# › ($filtre->idem donnerait 'Babar" pour l’exemple). Si Babar est dans un Babar, il n’est pas capturé, mais s’il est avant un Autre chose, il n’est pas capturé non plus, car un « » est détecté plus loin.
Ais-je donc la possibilité de dire de ne pas prendre Babar quand il est entre et ?
Je suis d’accord, mais j’ai un object de 700 filtes, avec 700 liens à mettre suivant le match. Dans un texte ou chaque filtre peut-être détecté plusieurs fois, je ne vois pas comment utiliser strpos.
Oui mais après ? J’en fais quoi de ce tableau ? Le but final est de remplacé des mots par des liens dans un texte, en ce basant sur une relation filtre/lien que j’ai dans une base. Chaque filtre peut apparaitre plusieurs fois dans un texte.