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 :

Expressions régulières : besoin d'aide


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Points : 114
    Points
    114
    Par défaut Expressions régulières : besoin d'aide
    Bonjour,

    j'ai besoin d'aide sur les expressions réguières :

    comment dire "toute chaine de caractères comprenant nombres, lettres...
    EXCEPTE certains caractères comme '(', ')', ' '... ?

    Je sais que l'on peut utiliser "\S" pour indiquer tout caractère sauf les espaces blancs mais pas plus


    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Dans la doc de la classe Pattern tu as le détail des principales structures des regexp...

    • \p{Alpha} pour toutes les lettres,
    • \p{Digit} pour les numériques,
    • \p{Alnum} qui regroupe les deux précédents...
    • etc...




    a++

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Points : 114
    Points
    114
    Par défaut
    Ok merci, mais le souci est que je n'arrive pas parfaitement à utiliser tout ça...

    Par exemple si je veux extraire un mot qui ne contient pas de 'j' dans une chaine de caractères de 2 mots, je n'y arrive pas !

    Exemple qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String aLine = "le java";
    Pattern p1 = Pattern.compile("(\\S+)[ ]+(\\S+)");
    Matcher m1 = p1.matcher(aLine);
    je récupère bien séparément "le" et "java" par la suite.

    mais si j'utilise "((\\S&&^[j])+)[ ]+(\\S+)" comme pattern pour ne pas prendre en compte les chaînes dont le 1er mot contient un 'j' ça ne passe plus.
    Pourquoi ? Ou est mon erreur ?

    Merci d'avance pour toute aide.

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Ca ne marche pas parceque tu essayes de vérifier si ta chaîne correspond ("match") ton expression. Or ce n'est pas le cas puisqu'un mot contient un j. Il faut utiliser "find" à la place pour extraire les mots que tu veux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    String phrase = " je  joue  à  un  jeu ";
    // Ce pattern recherche les mots compris entre deux espaces et ne contenant pas de j
    String pattern = " [^j ]+ ";
    Matcher m = Pattern.compile(pattern).matcher(phrase);
    while(m.find()) {
       System.out.println(m.group());
    }
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Points : 114
    Points
    114
    Par défaut
    En fait, CyberChouan , on ne s'est pas trop compris (j'ai vraiment besoin d'un "matches()") mais merci beaucoup quand même puisque grâce à ton code j'ai enfin compris comment exclure certains caractères.


    Merci beaucoup.

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

Discussions similaires

  1. [VBScript | Expression Regulière] Besoin d'aide
    Par narutobaka dans le forum VBScript
    Réponses: 1
    Dernier message: 10/10/2012, 15h16
  2. [expression régulière] besoin d'aide.
    Par Fabouney dans le forum Langage
    Réponses: 1
    Dernier message: 28/02/2006, 11h21
  3. Expression régulière : besoin d'aide
    Par barok dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/09/2005, 15h04
  4. Test d'expression régulière, besoin d'aide
    Par RedShift2 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/02/2005, 16h04
  5. Expression régulière (besoin d'aide)
    Par bigtoof dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/10/2004, 15h18

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