Bienvenue sur le site des Expressions Régulières Icone page d'accueil - Les expressions régulières php Accueil   Icone articles sur les expressions régulières en php Articles d'Expreg - Billets de Fred   Icone nos regex - Les expressions régulières php Les regex d'Expreg Icone mail - Les expressions régulières php

Les regex et MYSQL

Bison et les expressions rationnelles en php
Mysql
Nul n'est besoin de vous rappeler que le champ d'application des regex est très vaste.
La puissance des regex peuvent, également, être appliquées aux requêtes Mysql.
On ne va plus faire de cours, ni de rappel sur les symboles et autres caractères.
Le plus intéressant à ce stade c'est d'entrer directement dans le champ d'application des expressions régulières pour Mysql.

Tout par l'exemple !
A noter que la syntaxe utilisée est : select... blabla ... REGEXP(motif)


1) Un truc simple... des prénoms !

Imaginons que nous ayons une table membres avec un champ nom et prénom. Imaginons maintenant que parmi la centaine d'enregsitrements, nous souhaitions récupérer tous les noms des membres dont le prénom est Alain, Pierre et Jean.

<?php
$req
="select nom,prenom from $table where prenom REGEXP '(Alain|Pierre|Jean)'";
?>

Voilà, cette regexp va nous sortir tous les noms qui ont comme prénom ceux énumérés et est nettement plus courte qu'une classique :
$req="select dep,nom,prenom from $table where prenom='Alain' OR prenom='Jean' OR prenom='Gilbert'";


2) Avec des chiffres

Imaginons que nous ayons une table code articles et que nous souhaitions récupérer tous les codes qui contiennent 4 chiffres mais uniquement de 2 à 9

<?php
$req
="select code_article from $table where code_article REGEXP '([2-9]{4})'";
?>

Voilà, cette regexp va nous sortir tous les codes qui ont 4 chiffres et uniquement ceux qui ne contiennent rien d'autre que des 2,3,4,5,6,7,8,9


3) Avec des URL

Imaginons que nous ayons une table contenant des url que nous voulons trier avant affichage

<?php
$motif
='^(http://(www\.)?[^/]+/[^/]*)$';

$req="select url from latable where url REGEXP '".$motif."'"
?>
Voilà, cette regexp va nous sortir et récupérer uniquement des URL de ce type : http://www.domaine.ext/nimporte_quoi_derriere http://sousdomaine.domaine.ext/nimporte_quoi_derriere http://www.domaine-domaine.ext/nimporte_quoi_derriere http://sousdomaine.domaine-domaine.ext/nimporte_quoi_derriere

Les expressions régulières avec Mysql - Regex - Regexp



Rédaction Yves Maistriaux :: Mai 2003 Dernière mise à jour :: Décembre 2005


European Cards - Hosting-Ec Validation W3C European Cards - Hosting-Ec Validation W3C © 2003 - 2008 www.expreg.com - Toutes reproductions interdites sans l'autorisation écrite des auteurs
:::::::::: Design an Hosting by : European Cards Sprl ::::::::::