IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages Discussion :

expression régulière respectée ou pas


Sujet :

Langages

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    958
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 958
    Points : 141
    Points
    141
    Par défaut expression régulière respectée ou pas
    Bonjour,

    Soit l'expression régulière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Regex regex = new Regex(@"([\w\-.]+)@([\w\-.]+)");
    Sur un site d'explication des regex, il est dit que la chaîne "yop@cdiese.fr" est en correspondance avec cette regex
    D'après ce que je comprends, cette expression signifie : la chaîne à tester contient
    - d'abord un ensemble de caractère(s) alphanumérique(s) d'un ou plusieurs caractères mais sans le caractère "." suivi de @
    -puis un autre ensemble de caractères du même type
    D''après ce que j'ai appris, le - dans cette chaîne signifie "sans". Or on voit bien un "." dans cdiese.fr

    Il est cependant possible que le sens du 2ème caractère d'échappement dans [\w\-.] ne soit pas clair pour moi.

    A quoi sert-il dans ce cas ?

    Merci beaucoup de votre aide.

    Bien cordialement.

    new_wave
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS]

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 126
    Points : 1 636
    Points
    1 636
    Par défaut
    sauf erreur de ma part, ici le \- veut dire que l'on autorise le tiret (on "échappe" le '-' pour le prendre comme caractère et pas comme symbole de regex)
    et d'ailleurs le tiret c'est pour indiquer une plage [A-Z] = caractère entre A et Z

    Regarde sur Regex101 par exemple https://regex101.com/r/vkeRHJ/1
    ou regexr https://regexr.com/7rubv

  3. #3
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Citation Envoyé par new_wave Voir le message
    D'après ce que j'ai appris, le - dans cette chaîne signifie "sans".
    Le - signifie "sans" uniquement dans le cas précis d'une soustraction de classes de caractères, sinon il sert à définir un rang de caractères comme l'a dit @umfred. Par exemple si je veux toutes les lettres majuscules sauf les voyelles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Regex regex = new Regex(@"[A-Z-[AEIOU]]+");
    Ici j'ai soustrait aux caractères de la classe (soit le rang de A à Z) les caractères d'une autre classe [AEIOU]. Le résultat de cette soustraction pourrait autrement s'écrire de cette manière: [BCDFGHJ-NP-TV-Z].
    Le - sera interprété comme opérateur de soustraction de classes que:
    • s'il se trouve dans une classe de caractère et n'est pas échappé.
    • si l'opérande de droite est une classe.
    • si cette soustraction se trouve en fin de classe
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/01/2008, 11h57
  2. Regular expression qui ne fonctionne pas
    Par Remedy dans le forum Langage
    Réponses: 2
    Dernier message: 11/05/2007, 16h52
  3. [Pattern] Des expressions qui ne jouent pas à la régulière!
    Par Ravaka dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 21/04/2007, 15h28
  4. Une expression qui ne match pas ?
    Par krusty dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2007, 14h55
  5. expression for ne fonctionne pas
    Par iks22 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 10/01/2007, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo