begin process at 2008 09 06 04:36:52
1 237 644 membres
42 nouveaux aujourd'hui
14 313 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UTILISATION DES REGEX EN C#


Information sur le tutorial

Catégorie :Chaîne de caractères Tutorial .NET ( DotNet ) Date de création : 25/11/2006 12:02:15 Vu : 11 730 fois

Note :
8,5 / 10 - par 4 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

Description

Dans ce tutorial, nous allons apprendre à nous servir des expressions régulières avec c#

Tutorial

Utilisation des
Expressions régulières en


Bienvenue dans ce tutorial consacré à l'utilisation des expressions régulières en c#.

Attention,les gens ignorants ce nom étrange qu'est "expressions regulières"peuvent passer leur chemins, ce tutorial concerne uniquementl'utilisation d'un regex et non pas sa synthaxe. Nous n'apprendrons pasla signification de [a-zA-Z0-9] mais plutot comment vérifier une chainegrace à une classe de la .net framework 2.0 et biensur avec l'aide deces fameuses expressions régulières.

Pour ce faire, nous allons créer une petite application capaple de vérifier si le format d'un email est le bon.
Pourpouvoir suivre ce tutorial, vous devez avoir Visual C# 2005 (express)et une assez bonne connaissance en ce qui concerne les expressionsrégulières.

Sur ce, commençons :

Créez un nouveau projet que vous appelerez Vérification Email.
Affichez le code de form1.cs et incluez la classe System.Text.RegularExpressions. ()

Jusque la, rien de bien compliqué me direz vous, et bien rassurez vous, sa va se corser (juste en tout petit peut...)

Ocupons-nousmaintenant de l'interface graphique de notre application (qui, entrenous soit dit, sera quelque peut rudimentaire...), celle-ci est composéd'un champ de texte et d'un Label indiquant la validité de l'email qui,biensur change de couleur en fonction de la validitée (et oui il fauttout de meme penser à l'ergonomie...)

Voici un aperçut de notre magnifique application, qui, pour le moment, ne sert absolument à rien :



Vousl'aurez compris, l'email ne va pas être validée lors de l'appuie d'unbouton par l'utilisateur mais lors de la modification du texte(textBox1_TextChanged).

Passons maintenant a la partie plustechnique de ce tutorial, le code source. Affichez le code source deForm1.cs et rajouter le code suivant dans le corp de la classe :



Ce code instancie un objet de type Regex et va etre utilisé pour pouvoir vérifier notre email.

    Pour les têtus qui ont tout de meme voulu lire ce tutorial, je vais expliquer spécialement pour eux ce que veut dire cette chaine :
   
    - ^[a-z-A-Z0-9_.-]+ signifie que la chaine email doit absolument commencer par au moins une lettre (majuscule ou minuscule) ou un chiffre ou les          caractères "-","_","." ( paul@hebergeur.com )

    - @{1} signifie que la chaine eamil doit ensuite contenir une et une seule fois le caractère "@" 
( paul@hebergeur.com )

    -
[a-z-A-Z0-9_.-]{2,} Signifie que la chaine doit ensuite posséder au moins deux caractères ( paul@hebergeur.com )

    - \\. signifie que la chaine doit contenir un point entre l'hebergeur et le domaine ( paul@hebergeur.com )

    -
[a-z-A-Z0-9_.-]{2,}$ Signifie que le nom de domaine doit posséder entre 2 et 4 caractères ( paul@hebergeur.com )

Retournezensuite sur l'interface graphique et double cliquez sur le champ detexte. La méthode textBox1_TextChanged(object sender, EventArgs e) vaêtre créée.

Placez le code suivant dans cette méthode :



- Structure de la methode textBox1_TextChanged -

Je vais maintenant vous expliquer ce petit bout de code ligne par ligne :

- Nous remarquons tout d'abbord que le code est composé de deux bloc conditionnels ( if( condition ){...}else{...} ) et d'un bloc d'essai ( try{...}catch(Exception ex){...} ).

Il faut prendre l'habitude de mettre des blocs try un peut partout dans votre code, cela évite les boites de dialogues "L'application Bidule a effectuer un rapport d'erreur et doit fermer".

- : Cette ligne vérifie que le champ de texte textBox1 n'est pas vide.

- : Cette ligne évalue grave à la fonction régulière si le format de l'email est valide ou non.

-
Ces deux lignes de codes sont executées si le format de l'email est corecte, la première change la couleur du label2 en vert, la seconde change le texte du  label2 en "L'adresse email entrée est correcte".

-
Ces deux lignes de codes sont executées si le format de l'email est incorecte, la première change la couleur du label2 en rouge, la seconde change le texte du  label2 en "L'adresse email entrée n'est pas correcte".

-
Ces deux lignes de codes sont executées si le textBox1 est vide, la première change la couleur du label2 en bleu, la seconde change le texte du  label2 en "Veuillez entrer une adresse email".


Ce bloc de code vérifie qu'il n'y a eu aucune erreur au moment de l'execution du bloc try, dans le cas contraire, serait éxécuté et un message d'erreur affiché.

 
Vous pouvez maintenant executer notre application (  dans la barre d'outils ou  puis ).



- Première execution de notre application -



- Verification d'une adresse email -



- Verification d'un autre adresse email -



- Veuillez entrer une adresse email -

Comme vous pouvez le remarquer, notre application fonctionne et le résultat est meme plutot beau. Mais il reste tout de meme un tout petit détail que vous avez certainement du remarquer : Au démarrage, l'application affiche "Etat" à la place de "Veuillez entrer une adresse email".
Deux solution s'offrent à nous :
    - Modifier directement les propriétés du label2
    - Ou modifier, au démarrage, à partir du code, les propriétés du label2
Je vais opter pour la deuxième solution qui me paret la plus propre et me permet de vous faire découvrir (si vous ne le savez pas) comment effectuer une action au démarrage :
Double-cliquez sur votre form1 pour générer la méthode Form1_Load et insérez le code suivant :



- Structure de la methode Form1_Load -

La première ligne de code change la couleur du label2 en bleu, la seconde change le texte du  label2 en "Veuillez entrer une adresse email".

Voila, vous pouvez de nouveau executer l'application et constater que tout fonctionne. J'espère que ce tutorial vous aura apporté de nouvelles connaissances dans le language C# et vous donne envie de créer une autre application avec des expressions régulières ;-)

Pour télécharger le fichier executable cliquez ici.

Pour télécharger la source, cliquez ici.

A bientot pour un nouveau tutorial :-)
  • signaler à un administrateur
    Commentaire de jeb5292 le 03/12/2006 11:12:02

    Merci de poster des commentaires pour que je puisse améliorer ce tutorial
    merci ;-)

    @++
    Jean-ed

  • signaler à un administrateur
    Commentaire de MorpionMx le 04/12/2006 11:26:24 administrateur CS

    Salut

    Ton tuto est extremement clair et agreable à lire.
    Petite info, tu peux remplacer "aZ-AZ0-9_" par "\w".

    Bonne continuation

  • signaler à un administrateur
    Commentaire de jeb5292 le 04/12/2006 20:22:31

    Merci pour l'information ;)
    Bonne continuation a toi aussi ;)

  • signaler à un administrateur
    Commentaire de kiiika le 05/12/2006 03:38:41

    merci pour ton aide,c'est vraiment un tres bon tuto
    bonne continuiation

  • signaler à un administrateur
    Commentaire de OneHacker le 17/12/2006 21:47:34

    Les liens que tu as mis sont morts, sinon l'explication est pas mal ! 8/10

    Redman

  • signaler à un administrateur
    Commentaire de macnan le 26/01/2007 15:57:53

    Des qu'il écoute le mot "regex", mon cerveau fonctionne au ralenti mais ton tuto est clair et utile (même pas eu besoin d'aspirine^^). Bref, bon boulot, continues comme ça!

    Merci et bonne continuation

  • signaler à un administrateur
    Commentaire de Kikuts le 15/02/2007 11:43:34

    private Regex _valideMail = new regex(@"[a-zA-Z0-9_.-]{4,30}@{1}[a-zA-Z\d.-]{3,63}\.{1}[a-zA-Z]{2,4}");

    [a-zA-Z0-9_.-]{4,30} -> la partie avant l'arobase (@) doit contenir de 4 à 30 caractères
    [a-zA-Z\d.-]{3,63} -> le nom de domaine comporte de 3 à 63 caractères alphanumérique

    par contre pour le \\w c'est pas bon : \\w comporte la plage d'accents donc l'adresse éco@truc.fr sera ok -> je viens de tester

    Par contre nos regex ne traite pas le cas ou l'utilisateur entre tru..c_-_bidule@hebergeur..fr ... c'est vrai qu'il faut pas être fort pour mettre un truc du genre mais avec monsieur utilisateur il faut s'attendre à ce genre de truc (d'après ma prof d'info M. utilisateur est la personne la plus bête du monde ... un jour elle m'a traité d'utilisateur :'( :D

  • signaler à un administrateur
    Commentaire de elgege le 25/02/2007 00:13:31

    Petite question d'un nul en expression régulière :
    Existe il un moyen de se servir des regex pour formater un champ plutot que juste le controler ?

    Merci de vos réponses

  • signaler à un administrateur
    Commentaire de djax66 le 18/04/2007 10:01:00

    la vérification du TLD "[a-z-A-Z0-9_.-]{2,4}$" ne jouera pas pour .museum, ni pour une adresse IP finissant par un seul chiffre.
    "[a-z-A-Z0-9_.-]{1,6}$" me semble plus adéquat.




  • signaler à un administrateur
    Commentaire de rudhf le 30/04/2007 01:52:50

    Merci pour ce tuto
    j'ai une question, si j'ai une chose comme ça: (select dans sa forme minimale)
    select liste_d'attributs
    from liste_de_tables
    comment faire pour controler liste d'attributs et liste de tables ?

  • signaler à un administrateur
    Commentaire de rudhf le 30/04/2007 01:54:57

    Où peut on trouver plus de documentation sur les expressions régulières ? Merci

  • signaler à un administrateur
    Commentaire de MH2K le 16/05/2007 11:38:34

    Un tutoriel existe sur l'adresse ftp://ftp-developpez.com/lgmorand/dotnet/regex/regex.pdf

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS