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

Collection et Stream Java Discussion :

Rédaction d'une expression régulière


Sujet :

Collection et Stream Java

  1. #21
    Membre chevronné
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 158
    Par défaut
    Citation Envoyé par enzostar Voir le message
    je remplace les ; par mon separateur et les \" par mon délimiteur ?
    C'est ça.

    Prends le temps de comprendre l'expression régulière que je t'ai donnée, histoire de vérifier si ça correspond bien à ce que tu voulais.
    Le format CSV n'est pas formellement défini, les conventions que j'ai utilisées (et expliquées au moment de la décomposition de la regex) ne sont peut-être pas celles que tu attendais.

  2. #22
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 247
    Par défaut
    ok ça m'a l'air tout bon.
    Je dirais même que c'est parfait !!

    Merci à tous

  3. #23
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 247
    Par défaut
    Citation Envoyé par SucreGlace Voir le message
    Oui
    Dans le cas du CSV, où une valeur peut être encadrée ou non de guillemets, le split n'est pas adapté car les "séparateurs" ne sont pas indépendants les uns des autres.
    Je te propose d'identifier par une expression régulière non pas les séparateurs, mais plutôt les valeurs.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    String regex = "(^|(?<=;))([^\";])*((?=;)|$)|((?<=^\")|(?<=;\"))([^\"]|\"\")*((?=\";)|(?=\"$))";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(";\"\";aaaaa;;bb\"bb;\"ccccc\";\"ddd;dd\";ee\"\"ee;\"ff\"\"ff\"");
    while (m.find())
    {
       System.out.println(">>>"+m.group()+"<<<");
    }
    affiche


    [EDIT] désolé, en relisant je me suis aperçu que la réponse était contenue dans ton post.
    Merci.



    Décomposition de la regex:

    Une valeur non encadrée par des délimiteurs doit:

    • soit être en début de chaîne, soit être précédée d'un séparateur: (^|(?<=; ))
    • être composée d'une suite de caractère qui ne sont ni le délimiteur ni le séparateur : ([^\";])*
    • soit être en fin de chaîne, soit être suivie d'un séparateur : ((?=; )|$)


    Une valeur encadrée par des délimiteurs doit:

    • soit être en début de chaîne et précédée d'un délimiteur, soit être précédée d'un séparateur et d'un délimiteur : ((?<=^\")|(?<=;\"))
    • être composée d'une suite de caractères qui peuvent être un double délimiteur ou un séparateur : ([^\"]|\"\")*
    • soit être en fin de chaîne et suivie d'un délimiteur, soit être suivie d'un délimiteur et d'un séparateur : ((?=\"; )|(?=\"$))



    [EDIT] grrrr, à chaque fois je mets un quart d'heure à rédiger mon message, et deux autres sont apparus entre temps
    j'ai un plantage dans le cas ou l'utilisateur ne choisit pas de delimiteur.
    En java Serait il possible de m'indiquer comment faire dans ce cas la ?
    Merci
    [EDIT]désolé, je viens de me rendre compte que la réponse était contenue dans ton post.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [EXP] Evaluation dans une expression régulière
    Par SergentHeinz dans le forum Langage
    Réponses: 7
    Dernier message: 10/11/2005, 19h17
  2. Une expression réguliére
    Par BRAUKRIS dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 09/09/2005, 21h14
  3. Réponses: 6
    Dernier message: 17/08/2005, 13h38
  4. Problème sur une expression régulière
    Par Verbal-Quint dans le forum Langage
    Réponses: 6
    Dernier message: 12/11/2004, 11h54
  5. [Regex] Vérifier qu'une chaîne respecte une expression régulière
    Par PeteMitchell dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 13/05/2004, 15h22

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