Recherche d'un mot avec un REGEX et mettre en surbrillance [Résolu]

cs_bobino75 20 Messages postés vendredi 3 octobre 2008Date d'inscription 14 août 2012 Dernière intervention - 26 mai 2009 à 21:59 - Dernière réponse : cs_bobino75 20 Messages postés vendredi 3 octobre 2008Date d'inscription 14 août 2012 Dernière intervention
- 28 mai 2009 à 17:14
Bonjour,

Je recherche la bonne manière d'écrire un regex me permettant de trouver un mot dans une phrase.

Si je cherche le mot "mal", je veux trouver seulement les mots "mal" et non les autres qui conntienent ce mot, ex.: malade, maladie, etc.

Ce que je veux faire aussi, c'est de mettre en rouge le mot à l'affichage de mon enregistrement.

J'ai cherché et j'ai trouvé des solutions pour la recherche mais pour la couleur, le mal de maladie était en rouge ;-(

Merci de votre aide...
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
neigedhiver 2492 Messages postés jeudi 30 novembre 2006Date d'inscription 14 janvier 2011 Dernière intervention - 28 mai 2009 à 17:03
3
Merci
Alors remplace les \s par \b
<hr size="2" width="100%" />Neige

Blog

Merci neigedhiver 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de neigedhiver
DiGhan 240 Messages postés samedi 21 février 2004Date d'inscription 3 juin 2010 Dernière intervention - 27 mai 2009 à 00:53
0
Merci
Salut,

Il suffit d'ajouter une séquence d'espacement avant et après le mot à matcher :

echo preg_replace('#\s(word)\s#', '$1', $sentence);
Commenter la réponse de DiGhan
cs_bobino75 20 Messages postés vendredi 3 octobre 2008Date d'inscription 14 août 2012 Dernière intervention - 27 mai 2009 à 14:51
0
Merci
Merci !
Commenter la réponse de cs_bobino75
cs_bobino75 20 Messages postés vendredi 3 octobre 2008Date d'inscription 14 août 2012 Dernière intervention - 27 mai 2009 à 15:02
0
Merci
J'y arrive presque mais le problème de ce code, si je ne me trompe pas, c'est que si la phrase commence ou ce termine par "mal", le mot ne sera pas en rouge. Il y a t'il une autre solution ???
Commenter la réponse de cs_bobino75
neigedhiver 2492 Messages postés jeudi 30 novembre 2006Date d'inscription 14 janvier 2011 Dernière intervention - 28 mai 2009 à 03:34
0
Merci
Salut,

Prends un peu de temps pour lire la doc, tu constateras que les \s correspondent à n'importe quel caractère blanc (espace, tabulation, etc). Enlève les, et ça fonctionnera dans tous les cas.

<hr size="2" width="100%" />Neige

Bloghttp://fr.php.net/manual/fr/
Commenter la réponse de neigedhiver
cs_bobino75 20 Messages postés vendredi 3 octobre 2008Date d'inscription 14 août 2012 Dernière intervention - 28 mai 2009 à 14:56
0
Merci
Si j'enlève le \s, je reviens au problème de mon premier message. Si je cherche le mot "mal", je vais avoir malade, maladie, etc. Je veux seulement le mot "mal" en rouge et non les autres qui contiennent ce mot.
Commenter la réponse de cs_bobino75
DiGhan 240 Messages postés samedi 21 février 2004Date d'inscription 3 juin 2010 Dernière intervention - 28 mai 2009 à 16:05
0
Merci
Il faut ajouter une séquence contenant les caractères de ponctuation en plus des caractères d'espacement.
Commenter la réponse de DiGhan
cs_bobino75 20 Messages postés vendredi 3 octobre 2008Date d'inscription 14 août 2012 Dernière intervention - 28 mai 2009 à 17:14
0
Merci
Parfait. Merci pour votre aide !
Commenter la réponse de cs_bobino75

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.