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 :

REGEXP : recupérer une chaine entre deux autres chaines


Sujet :

Collection et Stream Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 135
    Points : 167
    Points
    167
    Par défaut REGEXP : recupérer une chaine entre deux autres chaines
    bonjour a tous,

    voila mon probleme : j'ai une chaine bordélique du type :

    ( TYPE:"{http://www.alfresco.org/model/content/1.0}content" AND ((@\{http\://www.alfresco.org/model/content/1.0\}name:ree* OR @\{http\://www.alfresco.org/model/content/1.0\}name:sdf* OR @\{http\://www.alfresco.org/model/content/1.0\}name:sdf* ) (TEXT:ree* OR TEXT:sdf* OR TEXT:sd1f* ))) OR ( TYPE:"{ http://www.alfresco.org/model/content/1.0}folder" AND (@\{http\://www.alfresco.org/model/content/1.0\}name:ree* OR @\{http\://www.alfresco.org/model/content/1.0\}name:sdf* OR @\{http\://www.alfresco.org/model/content/1.0\}name:sdf* ))

    et je voudrais recupérer toutes les chaines qui sont entre TEXT: et *

    donc dans mon exemple, je recupérai les chaines sdf sd1f et ree.


    je pense qu'il faut que j'utilise split de la classe Pattern, mais je n'arrive pas a trouver la bonne expression reguliére :

    voici ce que j'ai fait pour l'instant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Pattern modele = Pattern.compile(".*(TEXT://.*\\*).*");
            String uneChaine = "...";
            String[] valeurs = modele.split(uneChaine);
            for (int i = 0; i < valeurs.length; i++) {
              resultat += valeurs[i] + " ";
              System.out.println( " -> " + valeurs[i]);
            }
    merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Il serait plus judicieux d'utiliser les méthodes find() et group() de la classe Matcher.
    A priori cela marche avec l'expression régulière (?<=TEXT:).*?(?=\*)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Matcher matcher = Pattern.compile("(?<=TEXT:).*?(?=\\*)").matcher(uneChaine);
    while(matcher.find()) {
        System.out.println(matcher.group());
    }
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 135
    Points : 167
    Points
    167
    Par défaut
    merci, ca marche

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

Discussions similaires

  1. Insérer une ligne entre deux autres dans un fichier
    Par c1malabar dans le forum Langage
    Réponses: 8
    Dernier message: 25/05/2011, 19h44
  2. Réponses: 4
    Dernier message: 21/07/2010, 16h18
  3. [RegEx] Récupérer le contenu d'une chaine entre deux séparateurs
    Par soulryo dans le forum Langage
    Réponses: 2
    Dernier message: 13/08/2008, 14h17
  4. Regex : entraire chaines entre 2 autres chaines
    Par avogadro dans le forum Général Dotnet
    Réponses: 9
    Dernier message: 15/09/2007, 15h14

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