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

Windows Forms Discussion :

Parenthèse capturante de regex


Sujet :

Windows Forms

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut Parenthèse capturante de regex
    Bonjour,

    J'ai une chaine: Ma chaine N'IMPORTE QUOI la fin de la chaine
    et je souhaite récupérer N'IMPORTE QUOI (une chaine quelconque).
    Je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Reg As New Regex ("(Ma chaine)([\s\S])+(la fin de la chaine)")
    En Groups(1) j'ai bien Ma chaine
    En Groups(3) j'ai bient la fin de la chaine
    Mais en Groups(2) il me retourne la phrase lettre par lettre (dans un while avec .Capture)

    Comment faire pour avoir juste le bon morceau?

    Merci

  2. #2
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    En réfléchissant deux secondes ? Dans ton expression tu captures un caractère dans le groupe 2 et tu répètes cette capture plusieurs fois. Au lieu de capturer la répétition d'un caractère.

    De plus ta classe de caractères est assez bizarre. \s étant le contraire de \S utiliser ça ensemble revient à rechercher n'importe quel caractère. Autant utiliser le . à ce moment. Et s'il peut y avoir des retours chariot à ce niveau, il suffit d'activer l'option SingleLine.

    Bref
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Reg As New Regex ("(Ma chaine)(.+)(la fin de la chaine)")
    Pas de questions techniques par MP

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Citation Envoyé par StormimOn Voir le message
    En réfléchissant deux secondes ?
    C'est un peu juste.

    Merci je vais essayer.

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

Discussions similaires

  1. Shell : sed, substitute et parenthèse capturante
    Par supertotal dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 04/05/2009, 12h22
  2. [RegEx] Problème de parenthèses capturantes
    Par Tuttu dans le forum Langage
    Réponses: 3
    Dernier message: 27/02/2009, 14h37
  3. expressions régulières (re) : parenthèses capturantes
    Par zabibof dans le forum Général Python
    Réponses: 2
    Dernier message: 19/04/2008, 11h01
  4. Appliquer regex avec parenthèse capturantes sur SELECT
    Par vallica dans le forum Requêtes
    Réponses: 3
    Dernier message: 01/02/2008, 12h34
  5. [RegEx] ereg_replace et parenthèses capturantes
    Par liberty74 dans le forum Langage
    Réponses: 2
    Dernier message: 25/07/2007, 14h44

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