Partage
  • Partager sur Facebook
  • Partager sur Twitter

Regex avec séparateur

Sujet résolu
    24 septembre 2011 à 18:07:39

    Bonjour les zéros !

    Me voici parti pour mettre un pied (ou 2) dans les regex histoires de m'améliorer dans ce domaine qui est, pour l'instant, pas très limpide à mes yeux.
    Je fais donc quelques regex de base pour les vérifications (mails, numéro de téléphone ect...) mais mon problème aujourd'hui est que je n'arrive pas à faire un regex avec séparateur, je m'explique.

    Je récupère une ligne d'un texte sous la forme "7h12-8h12 ; Prenom Nom ; UnMot OuPlusieurs ; UnMot OuPlusieurs"
    Mon séparateur est donc le ';' et je suis parti sur cette base :

    Pattern p = Pattern.compile("([^;]);([^;]);([^;]);([^;])");
    Matcher m = p.matcher(lireLigne());
    
    if (m.matches())
    {
      System.out.println(matcher.group(1));
    }
    


    Ici je récupère donc mon String avec lireLigne() et je cherche à récupérer le premier groupe pour, normalement, récupérer "7h12-8h12".
    Malheureusement je dois galérer quelque part =S
    Quelqu'un pourrait-il m'éclairer ?

    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      24 septembre 2011 à 19:51:29

      Effectivement, ([^;]) correspond à un seul caractère. Il faut faire : "(.*?);(.*?);(.*?);(.*?)".

      Ceci dit, dans ce genre de cas un maString.split(";") est plus simple.
      • Partager sur Facebook
      • Partager sur Twitter
        27 septembre 2011 à 16:35:42

        J'ai testé en effet avec split et ça marche tout aussi bien qu'avec ton regex.
        Merci, sujet résolu ;)
        • Partager sur Facebook
        • Partager sur Twitter

        Regex avec séparateur

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown