Les expressions
régulières
MYSQL
420-W24-SF A.A.
Les expressions régulières ou regex
2
Les expressions régulières ou regex (regular expression) permettent de
représenter des modèles de chaînes de caractère.
Les regex existent dans tous les principaux langages comme le PHP,
MySQL, C#, Javascript...
Elles permettent de Spécifier la structure ou le patron de toutes les
chaines acceptables.
Elles sont vues comme un engin qui prend le patron et une chaine et
détermine si la chaine respecte le patron.
Exemple: #^[a-zA-Z-]+@[a-zA-Z-]+\.[a-zA-Z]{2,6}$#
420-W24-SF A.A.
Vérifier une entrée
3
Une expression régulière peut remplacer plusieurs lignes de code pour
vérifier qu’une zone de texte accepte seulement les caractères désirés par
une simple commande:
En JavaScript, la méthode test() de RegExp va rechercher des
correspondances entre une expression régulière et une chaine de
caractères.
o Retourne faux si la chaine ne respecte pas l’expression régulière
o Retourne vrai si tout est correct
420-W24-SF A.A.
Valider une donnée
4
Les expressions régulières offrent une grande flexibilité pour valider des
formats de données complexes, comme les numéros de téléphone, les codes
postaux, les noms d'utilisateur, etc.
Elles peuvent être très utiles pour s'assurer de l'intégrité des données dans
votre base de données MySQL.:
MySQL dispose d'une fonction intégrée appelée REGEXP qui permet d'utiliser
des expressions régulières dans les requêtes SQL
420-W24-SF A.A.
Valider une donnée
5
MySQL utilise l'opérateur REGEXP ou RLIKE pour filtrer les résultats selon
une séquence de caractères qui forme un modèle de recherche.
Exemples
SELECT * FROM produits
WHERE desc_prod RLIKE '[0-9]{2}';
SELECT * FROM produits;
420-W24-SF A.A.
Caractères à utiliser
6
A-Z ou a-z
0-9
\w des caractères
\d des chiffres
^ début de la chaine ou négation
$ fin de la chaine
() groupe
| alternative
[…] : un ensemble de caractère. ([a-f] les lettres de a à f
\s ou [:space:] tout caractère d’espacement
420-W24-SF A.A.
Les indicateurs de répétition
7
* : 0 ou plusieurs occurrences
? : 0 ou une occurrence
+ : 1 ou plusieurs occurrences
{n} : n occurrences
{n,m}: de n à m occurences
420-W24-SF A.A.
Exemples
8
RegEx Explication Chaines Chaines
acceptées refusées
^[A-Z]{3,6}$ Entre 3 et 6 ALI, QWERTY, Ali, ali, as, a12
caractères maj VOILA
^[a-z]+$ Une ou m, ali, voici, Chaine vide, Ali,
plusieurs. lettres bonsoir Bonjour,
minuscules
^\d*$ 0 ou plusieurs Chaine vide, 1, A, 125q12, 12.3
chiffres 2022, 123
^[A-Z][a-z]*$ Première lettre Ali, Bonjour, A 12a, chaine
maj, le reste vide, aaa, a
minuscule
420-W24-SF A.A.
Exemples
9
On veut valider le code postal du Canada:
Le format : A9A 9A9
Dans le format que nous supportons, la première lettre peut être ABCEGHJ pour
les autres lettres on accepte toutes les lettres.
Exemples acceptés : A3B 5M3, H3L 3N3, G1X 2L1, etc.
Exemples refusés : Z1H 2M2, g1v 3t2, L3M 2J7, etc.
Vous pouvez valider vos réponses sur [Link]
Essaie maintenant de valider le numéro de téléphone, on doit accepter ces
exemples :
(123) 123-1234 ou +1 (418) 123-1254 ou +1 418-254-2547
420-W24-SF A.A.
Références
10
[Link]
[Link]
[Link]
[Link]
420-W24-SF A.A.