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

Langage Java Discussion :

probleme de pattern


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 49
    Points
    49
    Par défaut probleme de pattern
    Bonjour à tous,

    je suis nouvelle dans ce forum, je ne sais pas ci c'est le bon forum ou je dois posé ma question.
    mais j'espere trouver une reponse.

    Ma question est la suivante : Comment je peux obtenir un pattern qui doit representé un nombre indifini des reals, des expresions(string) et des opérandes.

    merci pour votre aide.


  2. #2
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Rien compris Pourrais-tu être plus explicite (donne un exemple).

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    ok,

    un exemple de la chaine que le pattern doit representé peut être:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    salaire_brute * 2 - 4.098 / 1.2
    avec salaire_brute peut etre une expresion stocké dans la base de données

    pour le pattern je pense que je peux utilisé un truck comme cette exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Pattern p = Pattern.compile("[0−9][0−9]−[0−9][0−9][0−9]",Pattern.MULTILINE);
    Matcher m = p.matcher(valeur);
    estValide = m.matches();
    mais j'arrive pas à le faire est ce vous pouvez m'aider.

  4. #4
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    la grammaire est du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    expression -> operande {operateur operande}*
    operande -> chaine-de-caractères | nombre-réel
    operateur -> + | - | * | /
    Je te laisse le soin d'en déduire l'expression régulière.

  5. #5
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    bonjour à tous,

    merci pour la réponse ,

    mais j ai pas d'idée sur les expressions régulières en java est ce vous pouvez m'aider un peut plus et me donner une idée plus claire


    merci encors une fois

  6. #6
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Regarde la Javadoc des expressions régulières et pose toi les questions suivantes :
    • quelle expression permet de reconnaître un identificateur de variable ?
    • quelle expression permet de reconnaître une suite de chiffres ?
    • quelle expression permet de reconnaître un nombre réel ?
    • quelle expression permet de reconnaître un opérateur ?

    Ensuite tu assembles le tout pour satisfaire la grammaire.

  7. #7
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    merci beaucoup

    je veux essayer et je vous mettrais au courant de se qui se passe.


  8. #8
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    Bonjour à tous,

    voilà que je m'ensors enfin de ce probleme avec l'expression suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Pattern p = Pattern.compile("((([0-9]*+\\.[0-9]*+)|([0-9]*+)|([a-zA-Z]*+))[\\+\\-\\*\\/](([0-9]*+\\.[0-9]*+)|([a-zA-Z]*+)|([0-9]*+)))*+");
    cette expression accepte une formule de genre :operande operateur operande comme expliquer au dessus.

    mais il me reste un probleme à qui je trouve pas d'explication : si le dernier operande dans la formule est un entier il n'est pas accepter s'il sous forme reel il est accepter.
    par exemple :
    salaireDeBase*2 n'est pas accepté
    salaireDeBase*2.0 est accepté

    est ce que quelqu'un peut voir l'erreur.

    merci

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Points : 228
    Points
    228
    Par défaut
    Dans ton pattern (chaine_de_caractères valeur_numerique) le point est obligatoire. Au lieu d'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ([a-zA-Z]*+))[\\+\\-\\*\\/](([0-9]*+\\.[0-9]*+)
    Ecris plutôt (j'ai ajouté un point d'interrogation)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ([a-zA-Z]*+))[\\+\\-\\*\\/](([0-9]*+\\.?[0-9]*+)
    Je ne suis pas certain du résultat.
    Et aussi, qu'est-ce que tu essaies de capturer avec les quantifiers "*+" ?

Discussions similaires

  1. Expression reguliere: probleme de pattern
    Par Goupsy dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 06/10/2009, 17h21
  2. probleme url pattern /
    Par kalurar dans le forum Tomcat et TomEE
    Réponses: 12
    Dernier message: 07/09/2009, 14h25
  3. Utilisation de Matcher et Pattern, probleme de Regexp
    Par -ULK- dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 16/02/2009, 06h18
  4. probleme de Regex Pattern
    Par kiwikiwi1 dans le forum Général Java
    Réponses: 1
    Dernier message: 21/04/2008, 13h07
  5. probleme pattern observer/observable
    Par Methode dans le forum Langage
    Réponses: 3
    Dernier message: 08/01/2008, 15h00

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