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 :

Substitution de Regex


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 31
    Par défaut Substitution de Regex
    Bonjour,

    Voila, je recupère le contenu d'un fichier dans un String (en supprimant les tabulations ainsi que les retour à la lignes).

    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String recupFile = nom_predicat([ /* COMMENTAIRE */ s(0,'abc'/'abc' + opt('X#'(0)),`ljkqsllj`,'mlkjlklk',[]), /*COMMENTAIRE */s(05,&('jjjjjj') + *£@('LLLKJ') +@(l('NVBV')),`kkjlkjqsk`,'mlkjjlkj', []).
    J'aimerais supprimer les commentaires de cette variable, le problème est que la regex que j'ai mis en place supprime les commentaires et aussi tout ce qu'il y a entre.
    CAD que quand j'applique ma regex tout ceci sera supprimé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /* COMMENTAIRE */ s(0,'abc'/'abc' + opt('X#'(0)),`ljkqsllj`,'mlkjlklk',[]), /*COMMENTAIRE */
    C'est pas du tout ce que je veux :p

    voici ma regex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public static String extractionCommentaire(String recupFile){
    		String mCommentaireRemplace = null;
    		String myRegexCommentaire="(\\/\\*(.*)\\*\\/)";
    		Matcher mCommentaire = Pattern.compile(myRegexCommentaire,Pattern.MULTILINE).matcher(recupFile);
     
    		if(mCommentaire.find()){
    			Main.addTextConsole("mCommentaire : "+mCommentaire.group()+"\n");
    			mCommentaireRemplace = Pattern.compile(myRegexCommentaire,Pattern.MULTILINE).matcher(recupFile).replaceAll("");
    		}else{
    			mCommentaireRemplace=recupFile;
    		}
    		return mCommentaireRemplace;
    	}
    Si vous avez une petite idée n'hésitez pas.

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faut utiliser les "reluctant quantifiers" qui recherche les éléments les plus petits et évite de tout prendre. Pour cela il faut remplacer le .* par .*?


    Sinon concernant ton code autant utiliser directement la méthode replaceAll() de String. En effet tu peux utiliser directement (?m) à la place de Pattern.MULTILINE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    recupFile = recupFile.replaceAll("(?m)(\\/\\*(.*?)\\*\\/)", "");
    Cela évite d'analyser deux fois la même regexp

    a++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 31
    Par défaut
    Un grand merci pour ce petit point d'interrogation
    Je vais pouvoir revoir tout le code de toute mon application ..

    Merci encore !

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

Discussions similaires

  1. Regex et substitutions
    Par limestrael dans le forum Haskell
    Réponses: 6
    Dernier message: 17/01/2010, 03h44
  2. Pb substitution chaine de caractere (regex)
    Par slackuser dans le forum Langage
    Réponses: 5
    Dernier message: 01/09/2009, 14h38
  3. problème variable dans substitution par regex
    Par gorgonite dans le forum Langage
    Réponses: 2
    Dernier message: 26/12/2007, 12h31
  4. substitution String avec regex, possible ?
    Par kalou dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 16/01/2007, 23h52
  5. [Regex] Suppression commentaire et substitution de paramètre
    Par BiM dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 31/08/2006, 18h03

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