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 :

Expressions Régulières en Java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Hind4Dev
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 428
    Par défaut Expressions Régulières en Java
    je veux déclarer une chaine de caractères pour l'utiliser comme expression régulière mais ça me donne toujours erreur pourtant j'ai suivi les instructions d'un cours:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String expAdd = "[0-9]+"; //erreur là et même \d+ génère erreur
    pat = Pattern.compiler(expAdd);
    donc quelle est le bon format ?

  2. #2
    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
    Hello,

    c'est compile(), pas compiler().

    Mais il n'y a aucune erreur sur la ligne montrée, tu dois te tromper.
    Par contre ce n'est pas "\d+" mais "\\d+", puisque \ est un caractère d'échappement, dans les String et dans les regex.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé Avatar de Hind4Dev
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 428
    Par défaut
    j'ai mis compile(), même chose voilà une photo

    Nom : 2016-03-13_21-15-56.jpg
Affichages : 356
Taille : 27,4 Ko

  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
    Ahah, ce sont les private et static qui ont vendu la mèche.

    Tu es directement dans le corps de la classe, là, pas dans une méthode ou un bloc d'instruction.
    Autrement dit tu es dans un endroit où tu n'as pas le droit de faire n'importe quelle instruction, tu ne peux faire que des déclarations de variables.

    Or, si la ligne String expAdd = "[0-9]+"; est parfaite, elle est par contre suivie de pat = Pattern.compiler(expAdd); qui est une assignation sans déclaration, ça ne va pas.
    Le compilateur détecte que tu ne peux pas faire ça, mais il n'est pas assez malin pour trouver exactement quelle est ton erreur de pensée. Il croit que tu essayais de déclarer deux variables expAdd et pat, et donc il fallait une virgule , et non pas un point-virgule ;
    Alors que ton problème, c'est que tu essaies de mettre des instructions ailleurs que dans un bloc d'instruction.

    Syntaxe correcte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private static final String EXPRESSION = "[0-9]+";
    private static final Pattern PATTERN = Pattern.compile(EXPRESSION);
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé Avatar de Hind4Dev
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 428
    Par défaut
    emmm; je crois que j'ai un petit peu compris le manège, merci l'erreur a disparu, je peux enfin commencer ma fameuse calculatrice

  6. #6
    Membre éclairé Avatar de Hind4Dev
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 428
    Par défaut
    je n'arrive pas à suivre les tutoriels, par exemple je trouve que pour un caractère spécial on ajoute anti slash mais ça donne erreur chez moi pour cette expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private static final String expAdd = "[0-9]+[\\+-\\*/][0-9]+";
    voilà l'erreur "Caused by: java.util.regex.PatternSyntaxException: Illegal character range near index 11[0-9]+[\+-\*/][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