Besoin d'aide pour une regexp

Résolu/Fermé
Kopros Messages postés 595 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 - Modifié par Kopros le 5/08/2011 à 16:07
Kopros Messages postés 595 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 - 5 août 2011 à 17:52
Bonjour à tous,
Je n'y arrive définitivement pas avec les expressions régulières, est-ce que quelqu'un peut m'aider ?

Je veux faire une regexp dans une requête MySQL, mais j'y pige pas grand chose...
Je veux récupérer les données en fonction d'un mot recherché, si le mot est précédé et suivi d'un espace, ou si y'a aucun caractère avant et un espace après, ou si y'a un espace avant et aucun caractère après.

Je sais que c'est faisable mais je galère trop.

Merci de m'aider.

1 réponse

Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
Modifié par Groarh le 5/08/2011 à 17:14
En gros tu veux récupérer un mot comme avec l'option « mot entier seulement » qu'on trouve dans certains outils de recherche ? Ce qu'il te faut, c'est les word boundaries : [:<:] et [:>:], qui correspondent respectivement au début et à la fin d'un mot. Note que MySQL utilise la vieille syntaxe POSIX.

Essaye ceci :
[[:<:]]le_mot_a_chercher[[:>:]]


Par exemple, si tu saisis ceci dans la zone SQL de ton PHPMyAdmin :
SET @pattern := '[[:<:]]abc[[:>:]]'; 
SELECT 
 'x abc x' REGEXP @pattern, 
 'x abcd x' REGEXP @pattern, 
 'abc' REGEXP @pattern, 
 'x abcd x' REGEXP @pattern, 
 'x abc' REGEXP @pattern, 
 'abc x' REGEXP @pattern

Tu verras directement les résultats, 1 quand ça marche, 0 quand ça marche pas.
;)
1
Kopros Messages postés 595 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 89
5 août 2011 à 17:52
Génial !!

C'est exactement ce que je cherchais !
Effectivement je suis en train de monter une petite fonction de recherche, ça va bien m'aider. Merci ! :)
0