Etienne BAUDOUX

Forum sur les projets de Etienne BAUDOUX


Les expressions régulières (regex) avec Software Zator 2012

Partagez
avatar
polien


Masculin Nombre de messages : 2842
Age : 20
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

Les expressions régulières (regex) avec Software Zator 2012

Message par polien le Dim 20 Jan 2013 - 17:11

Bonjour à tous Smile

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...
on écrit:
Code:
(\d\d)\W
pour dire: 2 chiffres et un espace ou un tiret ou un point...

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 Very Happy



Cordialement,
Polien.

You want to have an english help for Software Zator ? Let's try to read the first tutorial in english Wink : CLIC HERE
BESOINS D'UN TUTO? CONSULTER LE SOMMAIRE !

Débutez avec SZ avec les tutos en pdf !
avatar
lereparateurdepc


Masculin Nombre de messages : 5481
Age : 24
Localisation : Calvados
Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
Humeur : toujours cool
Date d'inscription : 31/01/2010

Re: Les expressions régulières (regex) avec Software Zator 2012

Message par lereparateurdepc le Dim 20 Jan 2013 - 20:39

re,

Je ne comprend pas l'intéret de ce système...... mais bon.
J'utilise une fonction plus simple pour un e-mail .....:
je regarde si il y a le @ si oui je fait un découpage de ma chaîne au niveau du @.

en parlant du mail, ton regex ne fonctionne pas si le particule de gauche est composé :
exemple@fai.fr -> OK
test.exemple@fai.fr -> OK mais non valide par ton soft.

idem pour les IP : le soft accepte 255.255.255.255 ce qui est impossible pour une IP (et j'en passe)
Il n'est fonctionnel QUE pour les IPv4.
Forme de l'IPv6: 2001:0660:7401:0200:0000:0000:0edf:bdd7

Pour résumer, c'est peut-être utile mais je ne pense pas que beaucoup d'utilisateurs de Sz l'utiliserons car trop complex.
ça reste une analyse grocière du texte.

Perso, plutôt que de m'énerver avec des caractères complètement inconnus, je préfaire coder mon propre algo de vérification
c'est plus simple et plus clair! Smile

J'encourage quand-même les utilisateurs à poster ce type de tuto/astuces même complex ..... Un jour, on s'en servira peut-être ! Smile

J'aurais appris un truc sur l'informatique aujourd'hui car le regex était inconnu de mon langage ! Smile

Cordialement ,
le réparateur de PC



Modérateur & Administrateur du forum
Merci de contacter les membres par MP ou mail que pour "urgences". Le forum est fait pour ça. Merci

@ Contact : franleboss@gmail.com  Smile
Arrow  Visitez mon site : désolé l'hébergeur à fermé Sad

Ma chaine tutube : https://www.youtube.com/channel/UC7iU59NNAHz-tW5wqcgONHA


avatar
polien


Masculin Nombre de messages : 2842
Age : 20
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

Re: Les expressions régulières (regex) avec Software Zator 2012

Message par polien le Lun 21 Jan 2013 - 9:15

re,

en fait, quand on le connait bien, se système peut être très utile car il peut éviter d'avoir à faire une infinité de test. Mais il n'est à utiliser que si on doit faire des centaines de test à la chaine de caractère, sinon s'est vrai que pour récupérer un mot qui commence par une majuscule ou une minuscule, sa ne vaut pas trop la peine Wink .

Cordialement,
Polien



Cordialement,
Polien.

You want to have an english help for Software Zator ? Let's try to read the first tutorial in english Wink : CLIC HERE
BESOINS D'UN TUTO? CONSULTER LE SOMMAIRE !

Débutez avec SZ avec les tutos en pdf !
avatar
Admin
Administrateur
Administrateur

Masculin Nombre de messages : 1875
Age : 24
Localisation : Boulogne Billancourt(92100)(France)
Emploi/loisirs : Etudiant à SUPINFO International University, stagiaire à Microsoft Corporation
Date d'inscription : 24/01/2008

Re: Les expressions régulières (regex) avec Software Zator 2012

Message par Admin le Lun 21 Jan 2013 - 10:06

Bonjour,

Très bon tutoriel et très utile Very Happy

Bonne continuation Smile



Les 4 règles d'or du forum : Bonjour, Merci, Pas de SMS, Et un petit "[RESOLU]" dans le titre du sujet quand le problème est réglé. Wink

Etienne

Site internet : http://www.velersoftware.com
Twitter : http://twitter.com/VelerSoftware
avatar
polien


Masculin Nombre de messages : 2842
Age : 20
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

Re: Les expressions régulières (regex) avec Software Zator 2012

Message par polien le Lun 21 Jan 2013 - 12:35

@Admin a écrit:Bonjour,

Très bon tutoriel et très utile Very Happy

Bonne continuation Smile
bonjour,

merci Wink



Cordialement,
Polien.

You want to have an english help for Software Zator ? Let's try to read the first tutorial in english Wink : CLIC HERE
BESOINS D'UN TUTO? CONSULTER LE SOMMAIRE !

Débutez avec SZ avec les tutos en pdf !

Contenu sponsorisé

Re: Les expressions régulières (regex) avec Software Zator 2012

Message par Contenu sponsorisé


    La date/heure actuelle est Dim 25 Juin 2017 - 0:13