Section courante

A propos

Section administrative du site

REGEXP

Expression régulière
MySQL  

Syntaxe

chaine1 REGEXP chaine2

Paramètres

Nom Description
chaine1 Ce paramètre permet d'indiquer le champ dans lequel doit se trouver le critère spécifié.
chaine2 Ce paramètre permet d'indiquer le critère de recherche. Voici l'action des caractères :
Caractères Description
^ Ce caractère permet d'indiquer que la recherche doit obligatoire commencé au début de la chaîne de caractères du champ.
$ Ce caractère permet d'indiquer que la recherche doit obligatoire commencé à partir de la fin de la chaîne de caractères du champ.
. Ce caractère permet d'indiquer qu'il correspond à tous les caractères possibles. Donc, il s'agit d'un caractère générique du style «*» dans d'autres langage.
caractere* Ce caractère permet d'indiquer qu'il correspond à toute séquence de zéro ou plus du caractère spécifié.
caractere+ Ce caractère permet d'indiquer qu'il correspond à toute séquence de un ou plus du caractère spécifié.
caractere? Ce caractère permet d'indiquer qu'il correspond à zéro ou un caractère spécifié.
caractere1|caractere2 Ce caractère permet d'indiquer qu'il s'agit d'un caractère spécifié et de l'autre caractère spécifié.
[caractere] Ce caractère permet d'indiquer un caractère spécifié à rechercher.

Description

Cet opérateur permet d'indiquer un critère de recherche avec une expression régulière sur le champ spécifié.

Exemples

Prenons pour base la table «listvalue» avec le contenu suivant :

id value name
1 300 Jean
2 6000 Philippe
3 5000 Samuel
4 4000 Gabriel
5 200 Mathieu
6 6000 Paul

Si vous voulez retourner seulement les noms ayant un «a» comme deuxième lettre :

  1. SELECT * FROM listvalue WHERE name REGEXP '^.[a]';

Et les informations vous seront retournés sous la forme suivante :

id value name
3 5000 Samuel
4 4000 Gabriel
5 200 Mathieu
6 6000 Paul

Sachant que la table «phpbb_banlist» contient le contenu suivant :

ban_id ban_userid ban_ip ban_email ban_start ban_end ban_exclude ban_reason ban_give_reason
1 0   *@mauvaisdomaine.com 0 0 0    
2 0   *@bondomaine.com 0 0 0    
3 0   *@gladir.com 0 0 0    

L'exemple suivant permet de rechercher dans la table les courriels génériques correspondant à «test@mauvaisdomaine.com» en prenant pour acquis les «*» contenu dans la table :

  1. SELECT * FROM `phpbb_banlistWHERE 'test@mauvaisdomaine.com' REGEXP REPLACE(ban_email,'*','(.*)');

Et les informations vous seront retournés sous la forme suivante :

ban_id ban_userid ban_ip ban_email ban_start ban_end ban_exclude ban_reason ban_give_reason
1 0   *@mauvaisdomaine.com 0 0 0    

Voir également

Article - Les géants de l'informatique - Oracle

Dernière mise à jour : Lundi, le 5 septembre 2016