ZW3B :-: API Client * Contents * Docs by LAB3W.ORJ

Translate this page

Name : BETA-TESTERS

Project name : ZW3B-API-BETA-TESTERS

Authorized. - 200 - Client API Name and Origin Wildcard OK

¿Comment? 'Ou' ¿Que faire?, Développement, PHP, MySQL REGEXP : Search keyword

Rechercher dans une base de donnée MySQL un mot avec une expression régulière (REGEXP)

Author : O.Romain.Jaillet-ramey

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%'";
Retirer les numéros de lignes

MySQL REGEXP

J'utilise la recherche avec REGEXP à la place de LIKE.

L'expression régulière est celle-ci :

Script avec 1 ligne

001$expression = "([[:space:]]|^[[:space:]]|[[:punct:]]|^[[:punct:]]|^)".$keyword."([[:space:]]|^[[:space:]]|[[:punct:]]|^[[:punct:]]|$)";
Retirer les numéros de lignes
  1. Un espace [[:space:]] devant le mot - ou
  2. pas d'espace ^[[:space:]] devant le mot - ou
  3. une ponctuation [[:punct:]] devant le mot - ou
  4. pas de ponctuation ^[[:punct:]] devant le mot - ou
  5. commence la chaîne de caractères ^
le mot clé
  1. Un espace [[:space:]] devant le mot - ou
  2. pas d'espace ^[[:space:]] devant le mot - ou
  3. une ponctuation [[:punct:]] devant le mot - ou
  4. pas de ponctuation ^[[:punct:]] devant le mot - ou
  5. finit la chaîne de caractères $

Donc, la requête MySQL devient la suivante :

Script avec 1 ligne

001"SELECT * FROM contents WHERE contents_title REGEXP '".$expression."'";
Retirer les numéros de lignes

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.

 

Documentation sur REGEXP