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

C Discussion :

regex : expression valide ?


Sujet :

C

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 849
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 849
    Par défaut regex : expression valide ?
    Bonjour,

    je voudrais savoir si cette expression est valide (double ^):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "[^[a-c][^d-f][g-i][^k-m]]"
    C'est équivalent à ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    "[^a-cg-i[^d-fk-m]]"
    ou bien
    "[^a-ck-m]"

  2. #2
    Membre émérite
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Par défaut
    Pourquoi ne pas tester ?

    En fait le vrai problème, n'est pas le double ^ mais plutôt les emboitements de [] qui ne marchent pas.

    En fait cette regex ne décrit pas un seul caractère, mais une suite:
    • "[^[a-c]" (n'importe quel caractère différent de [, a, b, c)
    • "[^d-f]" (n'importe quel caractère différent de d, e, f)
    • "[g-i]" (g ou i)
    • "[^k-m]" (n'importe quel caractère différent de k, l, m)
    • "]" (le caractère crochet fermant ])

    Et donc quelque chose comme "&ahQ]" va matcher.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 849
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 849
    Par défaut
    Effectivement on ne peut pas inclure de multiple []

    Donc pour ce pattern, on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    "ab][a-z[]cd"
    // => le caractère '[' est vu comme un caractère normal s'il est mis après un '[' non fermé
    // => le caractère ']' est vu comme un caractère normal s'il n'est pas mis entre crochets
     
    "ab\\cd" // => recherche abcd
    "ab\\\\cd" // => recherche ab\cd
    "ab[\\]cd" // => recherche ab\cd
    => par contre, je n'avais pu vu dans les tuto trouvés sur le net ce type de comportement (signification d'un caractère en fonction du contexte).

    Est-ce que vous connaissez un document avec la description complète du fonctionnement des regex ?

  4. #4
    Membre émérite
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    Est-ce que vous connaissez un document avec la description complète du fonctionnement des regex ?
    man 3 regex et man 7 regex

  5. #5
    Membre actif Avatar de Causa Sui
    Inscrit en
    Mai 2003
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 133
    Par défaut
    Moche, mais plus pédagogique que les pages man*: http://www.regular-expressions.info/

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 849
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 849
    Par défaut
    ok merci beaucoup

  7. #7
    Membre émérite
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Par défaut
    (i.e. la balise) ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Expression regex pour valider numéro téléphone en France
    Par lordrt dans le forum Général Java
    Réponses: 11
    Dernier message: 15/12/2013, 07h51
  2. [REGEX] Expression validée à tort
    Par danyboy85 dans le forum Langage
    Réponses: 3
    Dernier message: 23/09/2013, 14h58
  3. [REGEX]Expression régulière
    Par tomca dans le forum Langage
    Réponses: 2
    Dernier message: 10/10/2005, 11h01
  4. [Regex] Expressions régulières: sous groupe
    Par debdev dans le forum Collection et Stream
    Réponses: 12
    Dernier message: 07/07/2005, 14h10
  5. [RegEx]Expression régulière
    Par Sniper37 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/06/2005, 11h18

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