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 :

[Regex]Recherche de mots dans une chaîne


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 33
    Points : 18
    Points
    18
    Par défaut [Regex]Recherche de mots dans une chaîne
    Bonjour

    J'ai une chaîne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s="test='a?b' And test=' Rgf' or test=' f?g' "
    Je souhaite touve l'expression régulière permettant de sortir les chaînes entre quotes contenant le caractère ?

    J'ai déjà l'expression '(.*?)'(?s)

    Qui me sort les chaines entres quotes :
    Et je souhaite avoir
    Merci pour votre aide...
    Lionel

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    ? est un caractère réservé dans les expressions régulières qui signifie "0 ou 1 fois le caractère précédent". Il faut donc "escaper" ce caractère dans ton expression.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Mon expression fonctionne parfaitement... Dans ce ça présent le ? signifie que je recherche les chaînes avec un "Reluctant quantifiers" CAD les plus petites chaines possibles...

    En fait mon expression me sort toutes les chaines entre quotes...

    Il me faut ajouter la sélection : Toutes les chaines entre quotes contenant '?' "

  4. #4
    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,

    il faut que tu force la précense d'un ? :
    Par contre il faudra surement changer le .* par [^']* sinon tu pourrais avoir des effets de bord...

    a++

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Formidable : Mon expresion réguliere devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '([^']*?\\?[^']*?)'(?s)
    et ça fonctionne parfaitement...

    Merci pour ton aide :D

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Heu encore une chose :

    le [^']* siginifie bien : les chaines commençant par ' et ne contenant pas ' . j'ai juste ?

  7. #7
    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
    [^'] représente n'importe quel caractère SAUF '
    et donc [^']* signifie 0 ou plusieurs fois n'importe quel caractère SAUF '...

    Dans les bloc [ ] le symbole ^ représente la négation, alors qu'il représente le début de la ligne s'il est utiliser en dehors de ce bloc...

    a++

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Merci pour ces réponses pertinantes 8)

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

Discussions similaires

  1. recherche par mots dans une phrase ou titre
    Par pierrot67 dans le forum Bases de données
    Réponses: 3
    Dernier message: 11/09/2006, 09h29
  2. module de recherche de mots dans une page html
    Par Drozo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/08/2006, 09h57
  3. [MySQL] recherche un mot dans une table
    Par hubidev dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/03/2006, 20h06
  4. recherche de mots dans une chaine de caractères
    Par jeanfrancois dans le forum Langage
    Réponses: 5
    Dernier message: 10/02/2006, 10h47
  5. Recherche un mot dans une chaine de caractere
    Par jean tof dans le forum Langage
    Réponses: 2
    Dernier message: 31/01/2006, 11h34

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