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éguliere et parenthèse ?


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Par défaut Expression réguliere et parenthèse ?
    Bonjour
    J'ai besoin d'utiliser les expressions régulières, et lorsque j'essaie de détecter une parenthese, je n'oublie pas de l'échapper avec un anti-slah pour qu'elle soit considérée comme un caractère ordinaire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(Pattern.matches("\(", "ab(c")){
    				if(debug) System.out.println("Parenthese gauche trouvée");
    			}
     
    else{
    				if(debug) System.out.println("Rien trouve");
    			}

    Pourtant, j'ai toujours une erreur qui est détectée :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )
    Lorsque je mets deux antislashs, l'erreur n'est plus présente mais ça m'affiche "Rien trouve" alors que la parenthese est bien dans la chaine !

    Je ne m'y connais pas beaucoup en expressions régulières et ça me bloque pour la suite de mon programme, je ne vois pas où est mon erreur !
    Merci d'avance pour votre aide !

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Il faut doubler l'antislash.

    En effet, avec un seul, java va tenter d'escaper directement dans la chaîne et ne passera rien à la regexp.
    Il faut donc escaper l'antislash pour que la regexp le prenne en compte.

    Ensuite, la regexp que tu as mis ne marchera pas. En effet elle ne fonctionnera que pour des chaînes contenant uniquement le caractère (

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Par défaut
    Merci de ta réponse !
    Effectivement lorsque je mets uniquement "(" , elle est détectée! Comment puis je faire pour qu'elle soit trouvée parmi toute une phrase?

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah comme on fait dans toute expression régulière, on utilise des caractère wildcard.

    Je te conseille la lecture de la javadoc de la classe Pattern qui contient les éléments pouvant constituer une regexp en java ...

    http://docs.oracle.com/javase/7/docs...x/Pattern.html

  5. #5
    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
    "N'importe quoi zéro ou plusieurs fois" suivi de "parenthèse" suivi de "n'importe quoi zéro ou plusieurs fois."
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur Java/Scala
    Inscrit en
    Octobre 2007
    Messages
    1 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Scala

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 086
    Par défaut
    Genre .*\\(.*

Discussions similaires

  1. [Debutant] Expression réguliere
    Par grizzz dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 17/08/2007, 16h14
  2. expression réguliere
    Par htristra dans le forum C
    Réponses: 11
    Dernier message: 06/09/2005, 22h33
  3. expression réguliere en c++
    Par alambics dans le forum MFC
    Réponses: 9
    Dernier message: 10/03/2004, 20h19
  4. expression réguliere
    Par alambics dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/03/2004, 13h52

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