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.