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 :

[Regex] Difficulté avec des mots accentués


Sujet :

Langage Java

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Mars 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 83
    Points : 89
    Points
    89
    Par défaut [Regex] Difficulté avec des mots accentués
    Bonjour

    Dans le contenu d'un document, j'essaie de catcher des mots inscrits entre guillemets. (exemple : paragraphe 1 « Greffons osseux pour un volume inférieur ou égal à 15 cm³ (15 cm³) »)

    Au départ, j'ai utilisé le pattern suivant :
    Le problème c'est que si dans un même paragraphe, j'ai plusieurs séries entre guillemets, le .+ fait que le pattern va prendre tout le texte qui se trouve entre les premiers et les derniers guillemets...

    J'ai donc changé de pattern pour celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    «\s+(\p{L}+\p{P}*\s*)+\s+»
    Là encore, il y a un problème sur l'exemple cité plus haut. J'ai essayé avec QuickRex sous Eclipse et le pattern tourne en boucle sans trouver de résultat.

    J'ai essayé un troisième pattern :
    Celui-ci ne catche pas les accents!

    Je n'ai plus trop d'idées : ( Je voudrais un pattern qui puisse catcher n'importe quoi se trouvant entre deux guillemets, mais sans utiliser le .+ pour éviter le premier problème cité

    Auriez-vous une idée?

    Merci

  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,


    Il faut tout simplement utiliser les reluctant quantifiers, ce qui permet de rechercher la plus petite chaine correspondantes au lieu de la plus grande :


    a++

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Mars 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 83
    Points : 89
    Points
    89
    Par défaut
    Merci beaucoup ^^ Ça fonctionne bien J'avais vu plusieurs fois cet élément dans la javadoc mais je ne m'étais pas arrêté dessus car la description donnée n'est pas vraiment explicite :/.

    J'ai aussi trouvé une autre solution qui fonctionne sur l'exemple donné:

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

Discussions similaires

  1. Les regex avec des mots composés
    Par Halex78 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/07/2008, 00h26
  2. Recherche sur des mots accentués avec collation en utf8
    Par pgilbert dans le forum Installation
    Réponses: 12
    Dernier message: 15/01/2008, 18h38
  3. Réponses: 1
    Dernier message: 31/10/2006, 15h06
  4. [VBA-A]Amusons nous un peu avec des mots.
    Par Miss Ti dans le forum Access
    Réponses: 6
    Dernier message: 24/07/2006, 21h13
  5. Chaînes avec des caractères accentués dans Interbase
    Par François Marliac dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/03/2004, 22h39

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