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

ASP.NET Discussion :

Outils pour parser String


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Doctorante
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut Outils pour parser String
    Bonjour à tous,

    j'ai une chaine de caractère de la forme suivante à parser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    maChaine() =>
        sousChaine1(attribut11, attribut12),
        sousChaine2(attribut21, atribut22),
    .....
    J'ai pu vérifier avec les Regex que ma chaine suivant ce schéma là, mais je voudrais récupérer chacune des sous chaines séparément pour pouvoir les traiter.
    Est-ce possible de créer des listes avec des Regex, ou sinon existe-t-il d'autres outils pour parser ma chaine de caratère ? Merci d'avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Si tu as déjà une regex qui permet de valider la chaine, tu peux la modifier de façon à "capturer" des parties de la chaine et y accéder par leur nom.

    La syntaxe à utiliser est décrite ici. En l'occurence, la forme que tu vas sans doute utiliser est la suivante :

    (?<nom>pattern)

    Par exemple, pour matcher des chaines du genre "a=3", "x=y" ou "foo=bar" (nom = valeur), tu peux utiliser une expression régulière comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Regex regex = new Regex("(?<nom>[a-zA-Z0-9_]+)=(?<valeur>[a-zA-Z0-9_]+)");
    Pour récupérer le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Match m = regex.Match(texte);
    if (m.Success)
    {
        string nom = m.Groups["nom"].Value;
        string value = m.Groups["value"].Value;
        Console.WriteLine("{0} = {1}", nom, value);
    }

  3. #3
    Membre averti
    Femme Profil pro
    Doctorante
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut
    Le problème c'est que je ne connais à l'avance le nombre de sous chaines...mais j'ai peut-être trouvé quelque chose avec les Captures. Je vais creuser !

Discussions similaires

  1. [C++] Outils pour parser des fichiers header?
    Par Invité dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 26/04/2013, 16h37
  2. Probleme pour parser une String en Date
    Par DrTank dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2007, 19h19
  3. Quel outil pour faire son parser C++?
    Par ZuoYue dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 20/03/2007, 22h19
  4. comment utiliser Scanner pour parser un String?
    Par ricardvince dans le forum Langage
    Réponses: 4
    Dernier message: 03/10/2006, 14h15
  5. Réponses: 2
    Dernier message: 23/01/2006, 15h51

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