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 :

Expression régulière en Java


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Par défaut Expression régulière en Java
    comment en peut utiliser une expression réguliere qui selection un mot d’au moins 6 caractères répété au moins 5 fois dans une même ligne.
    merci

  2. #2
    Membre Expert
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Par défaut
    Il faut utiliser les classes Pattern et Matcher de java.util pour exécuter des expressions régulières. Je t'invite à lire ce tutoriel pour comprendre le fonctionnement des regexp en Java : http://cyberzoide.developpez.com/java/regex/

  3. #3
    Membre averti
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Par défaut
    merci pour votre aide, oui je comprend comment le faire avec Pattern, mes par exemple trouvez un fichier contenant un mot d’au moins 6 caractères,
    se terminant par la lettre c et n’utilisant que les lettres a,b,c,e,f,g,h,i,j,k,l et aucune majuscule.
    ma expression régulière est "[a-ce-l]*c$" mes ca me donne pas le bonne résultat la même chose pour la question que j'ai poser mon expression est "\w{0,6}.\s{5}" merci.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    - Le * ne veut pas dire "au moins 5 fois," bien sûr -_-°. Pour "au moins N fois," c'est {N,} la virgule indiquant "entre N et un nombre indéterminé de fois."

    - Qu'est-ce que ce $ vient faire là ? Vire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    C'est peut-être possible en jouant avec le lookahead et les non capturing group, mais je crains que l'expression régulière au finale soit
    - imbuvable
    - intestable
    - non fiable

    Pourquoi ne pas simplement faire quelques lignes de code qui fasse ce boulot.

  6. #6
    Membre averti
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Par défaut
    voila mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    import java.util.regex.*;
     
     
    public class Motif {
    public static void main(String[] args) {
     
     
     
     
     
    try{
       Pattern p = Pattern .compile("^[a-z].{0,10}");
       String entree = "la vie la mort";
       Matcher m = p.matcher(entree);
       while (m.find())
          System.out.println(entree.substring(m.start(), m.end()));
    }catch(PatternSyntaxException pse){}
    }
    }
    je veut sélectionne toutes les expressions commençant et se terminant par le même mot séparé par au plus 10 caractères comme « la vie la » dans « la vie la mort », sa sélectionne juste la vie la m sa marche pas

  7. #7
    Membre averti
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Par défaut
    j'ai besoin d'aide voila mon programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
    import java.io.*;
     
     
    import java.util.regex.*;
     
     
    public class Motif {
    public static void main(String[] args) {
     
     
    try{
     
       Pattern p = Pattern .compile("[0-9]{4},[0-9\\.]+");
       String entree = "12/12/2005,43.45,32.1,";
       Matcher m = p.matcher(entree);
       while (m.find())
          System.out.println(entree.substring(m.start(), m.end()));
    }catch(PatternSyntaxException pse){}
    }
    }
    sa me donne ce résultat 2005,43.45
    au lieu de ce lui la 2005,32.1 sa fais plusieurs heur que je travaille sur ca merci

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Pattern p = Pattern .compile("([0-9]{4}),.*([0-9\\.]+)");
       String entree = "12/12/2005,43.45,32.1,";
       Matcher m = p.matcher(entree);
       while (m.find())
          System.out.println(m.group(1)+m.group(2));
    A noter que ca n'a strictement rien à voir avec les mot et répétition évoqués auparavant.....

  9. #9
    Membre averti
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Par défaut
    sa marche pas sa donne ce résultat :
    20051
    merci

  10. #10
    Membre averti
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Par défaut
    Ya tu quelqu'un qui peu m'aider svp

  11. #11
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Ceci devrais corriger.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern p = Pattern .compile("([0-9]{4}),.*?([0-9\\.]+)");

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

Discussions similaires

  1. Les expressions régulières en java
    Par blackhock dans le forum Général Java
    Réponses: 2
    Dernier message: 21/04/2009, 13h05
  2. Expression régulière avec java
    Par mouvma dans le forum Général Java
    Réponses: 2
    Dernier message: 18/01/2008, 17h00
  3. expression régulière en java
    Par shirya dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 21/09/2007, 16h10
  4. expression régulière en java
    Par Karine2007 dans le forum Langage
    Réponses: 9
    Dernier message: 07/07/2007, 12h35
  5. Expressions régulières en Java
    Par jason69 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 04/07/2007, 10h50

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