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 reguliere en java


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 76
    Par défaut expression reguliere en java
    Bonjour,
    j'ai jamais fait d'expression reguliere en java, et je veux savoir comment on fait pour faire une expression reguliere avec le mot "fait" qu 'il soit en majuscule ou miniscule, 'fait', "Fait", "Fait", "FaIt", ...
    et comment faire pour tester si ce mot existe dans une chaine de caractere,
    si quelqu'un a un petit exemple ca m'aiderai beaucoup
    merci a toutes et a tous

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 688
    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 688
    Par défaut
    Pour faire une expression qui ne vérifie pas la case, il faut soit le faire commencer par (?i) soi utiliser le flag CASE_INSENSITIVE de la classe pattern.

    Si tu veux un tuto clair et complet mais en anglais: http://www.regular-expressions.info/
    Si tu veux un tuto plus simple en français : http://cyberzoide.developpez.com/java/regex/
    Sinon toutes les structures possibles résumées dans la javadoc de la classe Pattern. Par contre ça reste très technique.

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 76
    Par défaut
    en faites j'ai regardé ton cours , jai fais ce code mais ca me retourne toujours false je sais pas pourquoi??


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Pattern p = Pattern.compile("(?i)fait[1-4]"); 
    Matcher fait = p.matcher(ligne);
    boolean bFait = fait.matches();
    System.out.println(bFait);
    avec ligne chaine de caractere "SELECT SUM(fait1.vente) FROM fait1"

    j'ai fait (?i)fait[1-4], car ca peut etre soit fait1 ou 2 ou 3 ou 4 et j'ai mis (?i) pour ne pas prendre en compte les majuscule ou les miniscule (Fait, fait, FAIT , ...)

  4. #4
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 688
    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 688
    Par défaut
    Le problème c'est que fait.matches() vérifie que l'intégralité de ta chaine correspond à l'expression rationnelle, or ce n'est effectivement pas le cas étant donné que "fait1" est précédé de "SELECT SUM(fait1.vente) FROM ".

    Si tu veux rechercher une regex a l'intérieur d'une chaire il te faut utiliser fait.find();

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 76
    Par défaut
    oui, ca marche merci,
    mais est ce que ca va detecter les deux fait1 ou juste la derniere

    et desolé d'abuser mais est ce que je peux recuperer la position ou il trouve la premiere occurence

  6. #6
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 688
    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 688
    Par défaut
    En fait ca va détecter le premier et si tu relance fait.find() une seconde fois ca va détecter le second.

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

Discussions similaires

  1. Expressions regulieres en Java
    Par GuiomNantes dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 03/08/2009, 10h40
  2. Expression reguliere java
    Par steeves5 dans le forum Général Java
    Réponses: 9
    Dernier message: 03/03/2008, 11h33
  3. expression reguliere en java script
    Par 18Marie dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/06/2006, 08h36
  4. [langage] surement une expression régulière...
    Par armada dans le forum Langage
    Réponses: 5
    Dernier message: 30/05/2003, 17h06
  5. [langage] expression reguliere motif répétitif dans 1 pattern
    Par comme de bien entendu dans le forum Langage
    Réponses: 11
    Dernier message: 09/04/2003, 16h14

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