Besoin d'aide pour une regexp

Résolu
Kopros Messages postés 595 Date d'inscription   Statut Membre Dernière intervention   -  
Kopros Messages postés 595 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   185
 
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   Statut Membre Dernière intervention   89
 
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