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 :

Probleme de regExp


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 82
    Par défaut regExp : suppression de certains espaces seulement
    Bonjour à tous,
    je cherche à repérer tout les espaces sur ma chaine de caractères, sauf certains d'entre eux qui sont compris dans des balises XML.

    Je suis capable de repérer n'importe laquelle de mes balises grace a la regexp suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <[a-z_A-Z]{1,}( [a-z_A-Z=,."0-9]{1,}){1,}>
    Ma question serait plutot, comment traduire

    "Tout les espaces saufs ceux contenus dans <[a-z_A-Z]{1,}( [a-z_A-Z=,."0-9]{1,}){1,}>"

    Merci d'avance pour vos lumières.

  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 : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Puisque ton expression régulière détecte toutes tes balises, tu peux procéder en deux passes:

    - une première passe qui supprimes tes balises, pour ne garder que le texte brut
    - une deuxième passe qui détecte les espaces dans ce qui reste

    Ensuite, ne connaissant pas la problématique exacte, cela ne répond peut-être pas à ton besoin...
    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 confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 82
    Par défaut
    La problématique complète provient du parser de SAX.
    Je m'explique : mon application permet à l'utilisateur de baliser un texte, ce texte balisé est sauvegardé sous la forme d'un fichier XML. J'utilise donc une methode stringToJDom qui permet de parser la String pour creer un xml que j'ajoute ensuite à ma sauvegarde.

    Le problème, c'est que lorsque le SAX fait son travail, il supprime certains espaces par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    blablabla <b>blibli</b> blabla
    devient apres parsing

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    blablabla
    <b>blibli</b>
    blabla
    Je perds donc l'espace situé avant la balise <b> et apres l'autre balise. Peut etre est ce du à une mauvaise utilisation de SAX de ma part, toujours est il que pour palier a ce problème, je souhaitais remplacer les espaces non compris dans des balises par un caractère spécial (ici _) afin de pouvoir retrouver les espaces lors du rechargement de la sauvegarde.
    Si les espaces contenus dans les balises sont remplacés eux aussi, des erreurs de balisage se produisent, c'est pourquoi je cherchais cette regexp pour pallier ce problème.

    Je ne peux pas supprimer les balises avant, car cela impliquerait de les replacer ensuite dans la string avant de faire le parsing ...

    Si tu as des suggestions, je suis preneur

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Peut-on voir le stringToJDom(), ainsi que l'instanciation du DocumentBuilder ?

    Typiquement, je dirais que la portion de code à mettre en cause est celle de l'instance du javax.xml.parsers.DocumentBuilderFactory sur laquelle un petit appel à setIgnoringElementContentWhitespace(false) ne serait pas du luxe.

    Bien entendu, je ne connais pas ton code, et si tu pouvais le copier ici, nous pourrions être plus efficaces.

Discussions similaires

  1. Utilisation de Matcher et Pattern, probleme de Regexp
    Par -ULK- dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 16/02/2009, 06h18
  2. [RegExp] problème de regexp
    Par carlos20 dans le forum Langage
    Réponses: 13
    Dernier message: 06/12/2005, 13h52
  3. Probleme de RegeXp
    Par vodevil dans le forum Langage
    Réponses: 6
    Dernier message: 29/11/2005, 19h33

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