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 :

Problème avec les expressions régulières


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut Problème avec les expressions régulières
    Bonjour,

    Comment on code les regex


    Le problème est que je ne sais pas comment faire pour que ma méthode reconnaisse des pattern ayant cette forme t?t? (format PERL) pour qu'elle puisse me renvoyer les lignes adéquates...

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut
    J'obtiens les erreurs suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ./Test.java:59: cannot find symbol
    symbol  : method compile(java.util.regex.Pattern)
    location: class java.util.regex.Pattern
            Pattern p = Pattern.compile(pattern);
                               ^
    ./Test.java:60: cannot find symbol
    symbol  : class Matcher
    location: class Test
            Matcher m;
            ^
    2 errors

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Est-ce que tu essaye au moins de trouver la solution à tes erreurs ou tu les poste directement ?
    Je dit ça car cela fait plusieurs fois que tu poste des "erreurs" plutôt évidente où il suffit de lire les messages d'erreurs pour connaître la solution.

    Bon, regarde le message d'erreur suivant :
    Citation Envoyé par Premium
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ./Test.java:59: cannot find symbol
    symbol  : method compile(java.util.regex.Pattern)
    location: class java.util.regex.Pattern
            Pattern p = Pattern.compile(pattern);
    Il dit clairement que le compilateur ne trouve pas, pour la classe Pattern, de méthode compile(Pattern), et c'est normal puisque qu'elle n'existe pas. En effet, il te suffit de regarder la doc de la classe Pattern pour voir qu'elle possède deux méthode compile() : compile(String regex) et compile(String regex, int flags)

    Enfin pour le message :
    Citation Envoyé par Premium
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ./Test.java:60: cannot find symbol
    symbol  : class Matcher
    location: class Test
            Matcher m;
            ^
    2 errors
    il t'est indiqué que le compilateur ne connait pas la classe Matcher, en effet tu as oublié l'import
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import java.util.regex.Matcher;
    En analysant bien tes messages d'erreur et en utilisant la Javadoc, tu devrais être à même de résoudre nombre de tes problèmes avant de poster .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut
    J'ai mis import java.util.*;
    je croyais avec cette facon, on avait toutes les classes de java.util

    Comme il n'existe pas de méthode compile(Pattern) et que la méthode matchers ne prend pas de Pattern, comment est-ce que je fais pour utiliser ce parametre ?

  5. #5
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par Premium
    J'ai mis import java.util.*;
    je croyais avec cette facon, on avait toutes les classes de java.util
    C'est une erreur fréquente en effet

    Quand tu fais import java.util.*; ca va importer toutes les classes du packag java.util, mais ca ne va pas importer les classes des sous-packages de java.util, comme par exemple regex.

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par Premium
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Pattern p = Pattern.compile(pattern);
        Matcher m;
        
        for(Iterator<Map.Entry<String, List<Integer>>> i = pairs.iterator(); i.hasNext(); ){
            Map.Entry<String, List<Integer>> e = i.next();
            m = p.matcher(e.getKey());
            if(m.matches()){
            for(Integer num : e.getValue())
                lineNumbers.add(num);
            }
        }
    Comme il n'existe pas de méthode compile(Pattern) et que la méthode matchers ne prend pas de Pattern, comment est-ce que je fais pour utiliser ce parametre ?
    Ben tu l'utilise à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m = p.matcher(e.getKey());
    en remplaçant p par pattern. Tu reçoit un Pattern en paramètre, utilise le donc, pourquoi vouloir en créer un autre ?
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  7. #7
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut
    Citation Envoyé par le y@m's
    Ben tu l'utilise à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m = p.matcher(e.getKey());
    en remplaçant p par pattern. Tu reçoit un Pattern en paramètre, utilise le donc, pourquoi vouloir en créer un autre ?
    J'ai une dernière question
    Dans la javadoc, j'ai vu qu'il y avait de nombreuses écritures différentes pour les expressions régulières avec des *, des [], des ?,...

    Est-ce qu'il faut faire quelque chose de spécial pour qu'un pattern de ce style t?t? soit reconnu ?

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

Discussions similaires

  1. Problème avec les expressions régulières
    Par philouelgeek dans le forum Langage
    Réponses: 13
    Dernier message: 16/02/2010, 08h33
  2. [RegEx] problème avec les expression régulières
    Par Medmidou dans le forum Langage
    Réponses: 1
    Dernier message: 02/10/2007, 18h35
  3. Problème avec les expression régulière
    Par fouyou dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 04/07/2007, 18h19
  4. [C#] problème avec les expressions régulières
    Par luimême dans le forum C#
    Réponses: 1
    Dernier message: 13/06/2007, 15h44
  5. [VB.net][vs2005] Problème avec les expressions régulières
    Par zouhib dans le forum Windows Forms
    Réponses: 13
    Dernier message: 22/06/2006, 15h56

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