OVH Cloud OVH Cloud

expression reguiliere pour surligner un mot

2 réponses
Avatar
Fred
Bonjour,

Comment faire pour mettre un mot donné en gras avec une expression régulière
?
J'ai un petit problème concernant l'isolation du mot lui-même :
ex :

Voici mon code actuel :

$texte=eregi_replace("(".stripslashes($mot_a_surligner]).")","<b>\\0</b>",$t
exte);

Avec ma fonction, dans la phrase suivante :

"Bordeaux est au bord de l'eau..."

si je veux mettre en gras le mot "eau", j'ai aussi "eau" en gras dans
"Bordeaux" et ce n'est pas ce que je veux !
Comment faire, quelle expression régulière faut-il utiliser pour mettre
juste le mot seul "eau" en gras et pas une sous-chaine ?
(en prenant en compte les éventuels signes de ponctuation pouvant entouré le
mot...)

Cordialement,

Frédéric

2 réponses

Avatar
Guillaume Bouchard
Fred wrote:

si je veux mettre en gras le mot "eau", j'ai aussi "eau" en gras dans
"Bordeaux" et ce n'est pas ce que je veux !
Comment faire, quelle expression régulière faut-il utiliser pour mettre
juste le mot seul "eau" en gras et pas une sous-chaine ?


Un mot c'est des caracteres alphanumerique et c'est tout ? non ?

preg_replace('`[^[:alphanum:]](eau)[^[:alphanum:]]`','<b>$1</b>',$str);

C'est basique, je pense que ça fonctionne, mais pas tester :)

--
Guillaume.

Avatar
Guillaume Bouchard
Guillaume Bouchard wrote:

C'est basique, je pense que ça fonctionne, mais pas tester :)


Je crois que cela ne fonctionais pas :)

preg_replace('`W(eau)W`','<b>$1</b>',$str);

--
Guillaume.