Name : BETA-TESTERS
Project name : ZW3B-API-BETA-TESTERS
Authorized. - 200 - Client API Name and Origin Wildcard OK
Rechercher dans une base de donnée MySQL un mot avec une expression régulière (REGEXP)
J'ai écris cette expression régulière pour rechercher des mots dans ma base de données MySQL.
Cette expression régulière permet de trouver de meilleurs occurrences de mots clefs qu'une recherche écrite de cette manière :
Script avec 1 ligne
001"SELECT * FROM contents WHERE contents_title LIKE '%keyword%'";
REGEXP
J'utilise la recherche avec REGEXP
à la place de LIKE
.
Script avec 1 ligne
001$expression = "([[:space:]]|^[[:space:]]|[[:punct:]]|^[[:punct:]]|^)".$keyword."([[:space:]]|^[[:space:]]|[[:punct:]]|^[[:punct:]]|$)";
[[:space:]]
devant le mot - ou^[[:space:]]
devant le mot - ou[[:punct:]]
devant le mot - ou^[[:punct:]]
devant le mot - ou^
le mot clé
[[:space:]]
devant le mot - ou^[[:space:]]
devant le mot - ou[[:punct:]]
devant le mot - ou^[[:punct:]]
devant le mot - ou$
Script avec 1 ligne
001"SELECT * FROM contents WHERE contents_title REGEXP '".$expression."'";
Truc simple ;)
Pour les français par exemple - En faisant une recherche du mot "AR" (Augmented Reality) dans mon moteur de recherche je tombais sur des articles avec les mots "par" ou "arriver" etc.. c'était nul.
C'est mieux maintenant.
%abc%
pour rechercher des chaînes contenant abc, mais vous ne pouvez pas écrire un seul modèle SQL pour identifier des chaînes contenant l'un des caractères a
, b
ou c
. Vous ne pouvez pas non plus faire correspondre le contenu d'une chaîne en fonction de types de caractères tels que des lettres ou des chiffres. Pour de telles opérations, MySQL prend en charge un autre type d'opération de correspondance de modèle basée sur des expressions régulières et l'opérateur REGEXP
(ou NOT REGEXP
pour inverser le sens de la correspondance). La correspondance REGEXP
utilise un ensemble d'éléments de modèle différent de %
et _
(aucun n'est spécial dans les expressions régulières).