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

Entrée/Sortie Java Discussion :

Regex qui traite les sauts de lignes


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 64
    Points : 40
    Points
    40
    Par défaut Regex qui traite les sauts de lignes
    Bonjour
    j'ai un fichier (?html) et j'aimerai extraire certaines balises à l'aide d'expréssions reguliéres, seulement voila , certaines balise peuvent s'etendrent sur plusieurs lignes, lorseque je recupére le contenu de mon fichier sur un string et que j'applique l'expression reguliére, ça foire car il traite le string ligne par ligne vu que y'a le "\n"
    merci

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Tu as plusieurs solutions :
    - éliminer tous les caractères "retour à la ligne" de ta chaîne (en les remplaçant par des espaces par exemple)
    - configurer ton expression régulière pour ne pas tenir compte des sauts de ligne (mode "multiligne", comme indiqué dans l'API : http://java.sun.com/j2se/1.4.2/docs/...x/Pattern.html)
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    je crois que je vais la mettre en mode multiligne, c'est mieux
    donc, mon regex je le construit comme si c'était sur une méme ligne et malgré les saut de ligne il va faire le remplacement normalment?

    ps: j'ai pas trouvé ou le mettre le paramettre multiligne , dans le Pattern.compile()???????

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Citation Envoyé par sampaiX Voir le message
    ps: j'ai pas trouvé ou le mettre le paramettre multiligne , dans le Pattern.compile()???????
    Oui, en utilisant la méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern.compile(String regexpr, int flags)
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  5. #5
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 552
    Points : 15 463
    Points
    15 463
    Par défaut
    Je pense que le paramètre qui t'interesse n'est pas vraiment Pattern.MULTILINE qui n'a effet que sur le ^ et le $ pour qu'il indiquent le debut/fin de ligne et non pas le début/fin de chaine.

    Ce qui t'interesse est plus vraisemblablement le Pattern.DOTALL qui a effet sur le * et lui permet d'avaler également les retours chariot.

    Pour utiliser ce paramètre, tu peux soit:
    - le passer en paramètre du pattern comme le propose CyberChouan
    - ajouter (?s) au début de ton expression régulière

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    effectivement ,ça marche lorsque je met le DOTALL, et non avec le multiline, je remercie tous ceux qui m'ont aidé sur ce probléme

Discussions similaires

  1. Réponses: 16
    Dernier message: 22/03/2006, 12h11
  2. Passer outre les "saut de ligne"
    Par calimero642 dans le forum Langage
    Réponses: 9
    Dernier message: 16/03/2006, 12h38
  3. [Mail] Les sauts de lignes pas pris en compte
    Par Anduriel dans le forum Langage
    Réponses: 15
    Dernier message: 14/12/2005, 20h13
  4. Réponses: 8
    Dernier message: 17/11/2005, 13h24
  5. [JtextArea] Transmetre les sauts de ligne à un fichier
    Par romuluslepunk dans le forum Composants
    Réponses: 4
    Dernier message: 04/08/2005, 22h34

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