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 :

Expression réguliere + MULTILINE


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 94
    Par défaut Expression réguliere + MULTILINE
    Bonjour
    Je suis en train de me battre avec les expressions régulières mais ça coince sur l’utilisation multiligne.
    Ma question est : Comment peut-on récupérer le texte multi ligne délimité par deux tags ?

    Exemple de texte
    Code Line 1
    Code Line 2
    @START_TAG Description de modification 1
    Code Line 3
    Code Line 4
    @END_TAG Statistiques de modification 1
    Code Line 5
    @START_TAG Description de modification 2
    Code Line 6
    Code Line 7
    @END_TAG Statistiques de modification 2
    Code Line 8

    Je voudrais récupérer le texte en 2 fois trois groupes :

    1 : la ligne de @START_TAG
    2 : n lignes de code
    3 : la ligne @END_TAG

    J’ai fait plusieurs tentatives en utilisant ?s et ?m mais je n’obtiens pas de résultat voulu.
    Exemple ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (\Q@START_TAG\E.*)\n(?s)(.*)(?-s)(\Q@END_TAG\E.*\n)

    Merci pour vos réponses

    Stan

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 94
    Par défaut
    Je ne sais pas si c'est la meilleure solution, mais ça marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (\Q@START_TAG\E.*)\n((?:[^\Q@END_TAG\E].*\n)*)(\Q@END_TAG\E.*\n)
    Stan

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


    Je ne sais pas si le fait d'activer/désactiver plusieurs fois le mode "dotAll" soit correct. J'ai peur qu'il ne prennent en compte que le dernier.

    Perso j'utiliserais plutôt les quantifiers "reluctants" qui recherche tout jusqu'à une certaine expression.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	Pattern pattern = Pattern.compile(
    		"(?m)(?s)" +		// pattern multiligne + dotAll
    		"(\\Q@START_TAG\\E.*?\n)" + // Le tag de départ
    		"(.*?)" +		// Le contenu (n'importe quoi jusqu'au tag de fin)
    		"(\\Q@END_TAG\\E.*?\n)");// Le tag de fin

    a++

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 94
    Par défaut
    Merci pour la bonne solution.
    J'ai zappé ce chapitre dans la doc.


    Stan

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

Discussions similaires

  1. [Debutant] Expression réguliere
    Par grizzz dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 17/08/2007, 16h14
  2. expression réguliere
    Par htristra dans le forum C
    Réponses: 11
    Dernier message: 06/09/2005, 22h33
  3. expression réguliere en c++
    Par alambics dans le forum MFC
    Réponses: 9
    Dernier message: 10/03/2004, 20h19
  4. expression réguliere
    Par alambics dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/03/2004, 13h52

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