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

Java Discussion :

utilisation du pattern matching


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Par défaut utilisation du pattern matching
    Bonjour,

    J'essaie d'utiliser le pattern matching avec Java 1.5, pour matcher si une chaine est bien sous une certaine forme.

    Mais si la chaine est bien sous cette forme, j'aimerais en extraire une sous chaine, ce que je n'arrive pas à faire....

    Voici un exemple:

    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
    23
    24
    25
    26
    27
    public static void initializeRules(){
            String ligne;
            FileInputStream fis = null;
            String fileName =
                "C:/projets/pv-document-rules/test/resources/drl/CV.drl";
               File drlFile = new File(fileName);
     
            Pattern p = Pattern.compile("rule (.*)");
     
               try {
                fis = new FileInputStream(drlFile);
                InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
                BufferedReader br = new BufferedReader(isr);
                while ((ligne = br.readLine()) != null) {
                    Matcher m = p.matcher(ligne);
                    if (m.matches()){
                        System.out.println("Trouvé: "+ ligne);
                    }
                }
            } catch (FileNotFoundException e) {
                // Log the error
            } catch (UnsupportedEncodingException e) {
                // Log the error
            } catch (IOException e) {
                // Log the error
            }
    }
    En fait, si ma ligne est sous la forme "rule (.*)", j'aimerais extraire dans une string le (.*), ce que je n'arrive pas à faire.

    Je vous remercie :-)

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Il suffit d'utiliser la fonction group() du Matcher :
    comme tu as un seul groupe entre parenthèses il te faut faire : m.group(1);

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Par défaut re
    Re,

    Merci

    J'avais vu cette méthode, mais je n'avais pas compris qu'elle servait à cela.

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

Discussions similaires

  1. Use of uninitialized value in pattern match (m//)
    Par Vladkergan dans le forum Langage
    Réponses: 4
    Dernier message: 13/01/2008, 19h25
  2. pattern matching (image processing)
    Par anatore dans le forum Traitement d'images
    Réponses: 8
    Dernier message: 15/10/2007, 16h01
  3. Use of uninitialized value in pattern match(m//)
    Par hayaet dans le forum Langage
    Réponses: 1
    Dernier message: 08/10/2007, 11h45
  4. [Regex] Pattern matching
    Par jeRame dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 26/06/2007, 14h28
  5. BDS - utilisation des Patterns
    Par RamDevTeam dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 05/11/2006, 17h35

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