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

Java Discussion :

récupérer le contenu détecter par une regex


Sujet :

Java

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 115
    Points : 86
    Points
    86
    Par défaut récupérer le contenu détecter par une regex
    Bonjour,

    Je sais pas si l'intitulé du thread est explicite donc je vais l'illustré d'un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String regexBody = "<body \\w*>";
     
    //...
     
    outFinal = outFinal.replaceAll(regexBody, contenu_regexBody+outAdmin.toString());
    J'ai ma regex (regexBody) qui détecte une balise body, ce que je voudrais faire dans mon replaceAll est de remplacer "contenu_regexBody" par la balise body complète qui a été détecté.

    Un collègue ma dit qu'en php c'était possible (il ne se souvient plus comment) je suppose donc que c'est également possible en Java, avez vous des infos sur comment faire ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 54
    Points : 74
    Points
    74
    Par défaut
    Pas avec replaceAll, faut faire un peu de travail à la main

    Tu dois créer un Pattern avec ta regexp

    Pattern p = Pattern.compile("<body \\w*>");

    Puis un matcher pour chaque string à analyser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Matcher m = p.matcher(outFinal);
    while (m.find()){
        System.out.println("balise trouvée: "+m.group());
    }
    resultat = m.replaceAll(valeurDeRemplacement);

  3. #3
    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
    Ton explication n'est pas très claire sur ce que tu veux obtenir, mais à priori ce que tu demandes semble correspondre aux groupes de capture.
    Les groupes de captures utilisent les () dans l'expression régulière et chacun est identifié par un numéro.
    Le numéro d'un groupe correspond au numéro de la parenthèse ouvrante du groupe. Le groupe 0 correspondant à toute l'expression régulière.
    Pour récupérer la valeur d'un groupe il faut utiliser le caractère '$' suivi du numéro du groupe.

    Ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String res = "<body something>".replaceAll("<body (\\w*)>", "$1");
    System.out.println(res);
    affichera
    something
    Tu peux aussi avoir une utilisation plus précise des groupes en utilisant la classe Matcher (voir aussi Matcher.group(int) et capturing groups).
    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

  4. #4
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 115
    Points : 86
    Points
    86
    Par défaut
    Merci beaucoup, la solution de CastorJoyeux me convient parfaitement

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

Discussions similaires

  1. [RegEx] Ensemble de Vecteurs à récupérer par une Regex
    Par Iori Yagami dans le forum Langage
    Réponses: 6
    Dernier message: 27/06/2009, 15h24
  2. Réponses: 2
    Dernier message: 11/07/2007, 12h59
  3. Récupérer un sous groupe d'une regex
    Par kalash_jako dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 06/11/2006, 21h03
  4. Réponses: 1
    Dernier message: 18/05/2006, 11h37

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