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

Messages postés
20
Date d'inscription
vendredi 3 octobre 2008
Dernière intervention
14 août 2012
- - Dernière réponse : cs_bobino75
Messages postés
20
Date d'inscription
vendredi 3 octobre 2008
Dernière intervention
14 août 2012
- 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
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Dernière intervention
14 janvier 2011
13
3
Merci
Alors remplace les \s par \b
<hr size="2" width="100%" />Neige

Blog

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de neigedhiver
Messages postés
240
Date d'inscription
samedi 21 février 2004
Dernière intervention
3 juin 2010
1
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
Messages postés
20
Date d'inscription
vendredi 3 octobre 2008
Dernière intervention
14 août 2012
0
Merci
Merci !
Commenter la réponse de cs_bobino75
Messages postés
20
Date d'inscription
vendredi 3 octobre 2008
Dernière intervention
14 août 2012
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
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Dernière intervention
14 janvier 2011
13
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
Messages postés
20
Date d'inscription
vendredi 3 octobre 2008
Dernière intervention
14 août 2012
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
Messages postés
240
Date d'inscription
samedi 21 février 2004
Dernière intervention
3 juin 2010
1
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
Messages postés
20
Date d'inscription
vendredi 3 octobre 2008
Dernière intervention
14 août 2012
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.