Bonjour à tous
Les regex sont un outil (ou plutôt un système) très puissant permettant de vérifier la syntaxe d'une chaîne de caractères. Plus précisément, c'est vérifier que la chaîne de caractères à examiner respecte un motif ou une série de motifs. On s'en sert dans de nombreux sites internet comme pour le bbcode d'un forum ou dans des logiciels de traitement de texte.
Je vais vous apprendre à les utiliser, pour suivre ce tutoriel, je vous ait créé un petit programme:
se programme va permettre de voir l'effet des regex que vous allez rentrez sur une phrase ou un texte, voici un exemple
d'utilisation de ce programme:
dans ce cas la le programme remplace tout les numéros de téléphones valides par la phrase: "numéro de téléphone correct"
un régex est, comme vous avez pu le voir dans la capture d'écran, un ensemble de caractère mit de façon bizard, en fait ses caractères ont une signification, en fait, au lieu d'écrire:
Ainsi, on dresse la liste suivante pour le "codage" des régex:
on a également inventé des expression pour simplifier ces regex:
Voici quelques exemples et leur utilitées:
(\d\d)\W(\d\d)\W(\d\d)\W(\d\d)\W(\d\d) un numéro de téléphone
^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$ une adresse ip
^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$ un email
pour utiliser ses regex, il vous faut faire executer la fonction Replace d'une variable de type regex. Vous trouverez si dessous les sources du logiciel que j'ai créé:
n'hésitez pas à les modifier pour comprendre le fonctionnement
Bonne journée
Les regex sont un outil (ou plutôt un système) très puissant permettant de vérifier la syntaxe d'une chaîne de caractères. Plus précisément, c'est vérifier que la chaîne de caractères à examiner respecte un motif ou une série de motifs. On s'en sert dans de nombreux sites internet comme pour le bbcode d'un forum ou dans des logiciels de traitement de texte.
Je vais vous apprendre à les utiliser, pour suivre ce tutoriel, je vous ait créé un petit programme:
se programme va permettre de voir l'effet des regex que vous allez rentrez sur une phrase ou un texte, voici un exemple
d'utilisation de ce programme:
dans ce cas la le programme remplace tout les numéros de téléphones valides par la phrase: "numéro de téléphone correct"
un régex est, comme vous avez pu le voir dans la capture d'écran, un ensemble de caractère mit de façon bizard, en fait ses caractères ont une signification, en fait, au lieu d'écrire:
- Code:
2 chiffre un tiret 2 chiffre un tiret...
- Code:
(\d\d)\W
Ainsi, on dresse la liste suivante pour le "codage" des régex:
Symbole
Correspondance
Exemple
\
Caractère d'échappement
[\.] contient un "."
^
Début de ligne
^b$ contient uniquement b
.
N'importe quel caractère
^.$ contient un seul caractère
$
Fin de ligne
er$ finit par "er"
|
Alternative
^(a|A) commence par a ou A
( )
Groupement
^((a)|(er)) commence par a ou er
-
Intervalle de caractères
^[a-d] commence par a,b,c ou d
[ ]
Ensemble de caractères
[0-9] contient un chiffre
[^]
Tout sauf un ensemble de caractères
^[^a] ne commence pas par a
+
1 fois ou plus
^(a)+ commence par un ou plusieurs a
?
0 ou 1 fois
^(a)? commence ou non par un a
*
0 fois ou plus
^(a)* peut ou non commencer par a
{x}
x fois exactement
a{2} deux fois "a"
{x,}
x fois au moins
a{2,} deux fois "a" au moins
{x, y}
x fois minimum, y maximum
a{2,4} deux, trois ou quatre fois "a"
on a également inventé des expression pour simplifier ces regex:
Alias
Correspondance
Equivalence
\n
Caractère de nouvelle ligne
\r
Caractère de retour à la ligne
\t
Caractère de tabulation
\s
Caractère d'espacement (espace, tabulation, saut de page, etc)
[\f\n\r\t\v]
\S
Tout ce qui n'est pas un espacement
[^\f\n\r\t\v]
\d
Un chiffre
[0-9]
\D
Tout sauf un chiffre
[^0-9]
\w
Un caractère alphanumérique
[a-zA-Z0-9_]
\W
Tout sauf un caractère alphanumérique
[^a-zA-Z0-9_]
\n
Caractère en octal ex:\001 ==> " 1 "
\xn
Caractère en hexadécimal ex: \x41 ==>" A "
Voici quelques exemples et leur utilitées:
(\d\d)\W(\d\d)\W(\d\d)\W(\d\d)\W(\d\d) un numéro de téléphone
^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$ une adresse ip
^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$ un email
pour utiliser ses regex, il vous faut faire executer la fonction Replace d'une variable de type regex. Vous trouverez si dessous les sources du logiciel que j'ai créé:
n'hésitez pas à les modifier pour comprendre le fonctionnement
Bonne journée