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 :

Pb d'expression Réguliére : pour les amateurs


Sujet :

Java

  1. #1
    Membre actif Avatar de tnodev
    Profil pro
    SSSSS
    Inscrit en
    Mai 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : SSSSS

    Informations forums :
    Inscription : Mai 2005
    Messages : 182
    Points : 231
    Points
    231
    Par défaut Pb d'expression Réguliére : pour les amateurs
    Bonjour,
    j'ai un petit souci que je pense régler via les expressions réguliéres...

    Je dois couper un morceau d'un fichier rtf, la parti qui commence par
    et finit par
    en sachant qu'il y a plusieurs lignes

    exemple :
    shfloch0\stshfhich0\stshfbi0\deflang1036\deflangfe1036\themelang1036\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Tahoma};}
    {\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}
    {\f10\fbidi \fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}{\f11\fbidi \fmodern\fcharset128\fprq1{\*\panose 02020609040205080304}MS Mincho{\*\falt ?l?r ??\'81\'66c};}
    {\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f36\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}
    {\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma{\*\falt Century Gothic};}{\f39\fbidi \froman\fcharset0\fprq2{\*\panose 00000000000000000000}Bookman{\*\falt Bookman Old Style};}
    {\f40\fbidi \froman\fcharset2\fprq2{\*\panose 05030102010509060703}Webdings;}{\f41\fbidi \fnil\fcharset2\fprq2{\*\panose 01010601010101010101}Monotype Sorts{\*\falt Courier New};}
    {\f42\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0502050508020304}CG Omega{\*\falt Heavy Heap};}{\f93\fbidi \fmodern\fcharset128\fprq1{\*\panose 02020609040205080304}@MS Mincho;}
    {\f196\fbidi \froman\fcharset2\fprq2{\*\panose 05020102010507070707}Wingdings 2;}{\f201\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0606020202030204}Arial Narrow;}{\f203\fbidi \froman\fcharset0\fprq2{\*\panose 02020404030301010803}Garamond;}
    {\f204\fbidi \froman\fcharset0\fprq2{\*\panose 00000000000000000000}Garmond (W1);}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Tahoma};}
    {\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Tahoma};}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}
    {\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Tahoma};}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Tahoma};}
    {\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Tahoma};}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri{\*\falt Century Gothic};}
    {\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Tahoma};}{\f221\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Tahoma};}
    {\f222\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Tahoma};}{\f224\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Tahoma};}{\f225\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Tahoma};}
    {\f226\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Tahoma};}{\f227\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Tahoma};}{\f228\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Tahoma};}
    {\f229\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Tahoma};}{\f231\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\f232\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}{\f234\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}
    {\f235\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f236\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f237\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}{\f238\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}
    {\f239\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f241\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f242\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}{\f244\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}
    {\f245\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f246\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f247\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f248\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}
    {\f249\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f333\fbidi \fmodern\fcharset0\fprq1 MS Mincho Western{\*\falt ?l?r ??\'81\'66c};}{\f331\fbidi \fmodern\fcharset238\fprq1 MS Mincho CE{\*\falt ?l?r ??\'81\'66c};}
    {\f332\fbidi \fmodern\fcharset204\fprq1 MS Mincho Cyr{\*\falt ?l?r ??\'81\'66c};}{\f334\fbidi \fmodern\fcharset161\fprq1 MS Mincho Greek{\*\falt ?l?r ??\'81\'66c};}{\f335\fbidi \fmodern\fcharset162\fprq1 MS Mincho Tur{\*\falt ?l?r ??\'81\'66c};}
    {\f338\fbidi \fmodern\fcharset186\fprq1 MS Mincho Baltic{\*\falt ?l?r ??\'81\'66c};}{\f561\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f562\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}
    {\f564\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f565\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f568\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f581\fbidi \froman\fcharset238\fprq2 Cambria CE;}
    {\f582\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\f584\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\f585\fbidi \froman\fcharset162\fprq2 Cambria Tur;}{\f588\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}
    {\f601\fbidi \fswiss\fcharset238\fprq2 Tahoma CE{\*\falt Century Gothic};}{\f602\fbidi \fswiss\fcharset204\fprq2 Tahoma Cyr{\*\falt Century Gothic};}{\f604\fbidi \fswiss\fcharset161\fprq2 Tahoma Greek{\*\falt Century Gothic};}
    {\f605\fbidi \fswiss\fcharset162\fprq2 Tahoma Tur{\*\falt Century Gothic};}{\f606\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew){\*\falt Century Gothic};}{\f607\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic){\*\falt Century Gothic};}
    {\f608\fbidi \fswiss\fcharset186\fprq2 Tahoma Baltic{\*\falt Century Gothic};}{\f609\fbidi \fswiss\fcharset163\fprq2 Tahoma (Vietnamese){\*\falt Century Gothic};}{\f610\fbidi \fswiss\fcharset222\fprq2 Tahoma (Thai){\*\falt Century Gothic};}
    {\f1153\fbidi \fmodern\fcharset0\fprq1 @MS Mincho Western;}{\f1151\fbidi \fmodern\fcharset238\fprq1 @MS Mincho CE;}{\f1152\fbidi \fmodern\fcharset204\fprq1 @MS Mincho Cyr;}{\f1154\fbidi \fmodern\fcharset161\fprq1 @MS Mincho Greek;}
    \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Tahoma};}
    {\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Tahoma};}}
    {\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;
    \red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red255\green255\blue255;
    }{\*\defchp \fs22 }{\*\defpap \ql ...
    Merci d'avance, j'y suis depuis quelques jours et

  2. #2
    Membre actif Avatar de tnodev
    Profil pro
    SSSSS
    Inscrit en
    Mai 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : SSSSS

    Informations forums :
    Inscription : Mai 2005
    Messages : 182
    Points : 231
    Points
    231
    Par défaut
    Je pensais faire quelque chose comme ça :

    avec flags Dotall

    mais il me prend tous mon fichier après le {\fonttbl{

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Tu as mis .* ce qui signifie tous les caractères, il faudrait plutot dire tout sauf deux fois '}}'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \{\\fonttbl\{[.^[\}{2}]]*\}{2}
    Je pense que ton pb vient de la
    ++

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu as au moins une erreur sur le "\" de fonttbl.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    String a = "aa{\\toto}bb";
    System.out.println( "chaine : " + a );
    String[] s = a.split( "\\{\\\\toto\\}" );
    for( String b : s )
    {
      System.out.println( b );
    }
    Et le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    chaine : aa{\toto}bb
    aa
    bb
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre actif Avatar de tnodev
    Profil pro
    SSSSS
    Inscrit en
    Mai 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : SSSSS

    Informations forums :
    Inscription : Mai 2005
    Messages : 182
    Points : 231
    Points
    231
    Par défaut
    L'expression régulière n'est pas au format Java, sinon il faudrait effectivement doubler tous les \

  6. #6
    Membre actif Avatar de tnodev
    Profil pro
    SSSSS
    Inscrit en
    Mai 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : SSSSS

    Informations forums :
    Inscription : Mai 2005
    Messages : 182
    Points : 231
    Points
    231
    Par défaut
    Citation Envoyé par ellene Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    \{\\fonttbl\{[.^[\}{2}]]*\}{2}
    J'avais pensait à faire quelque chose de la sorte, mais ça ne marche pas.
    J'ai l'impression qu'il n'aime pas le {2} dans le []

    En fait, je n'arrive pas à lui dire de prendre tous jusqu'à deux }...

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    J'ai l'impression qu'il n'aime pas le {2} dans le []
    Effectivement, j'ai dit une bêtise : les crochets définissent un "ou" en fait d'où l'erreur.
    Peut être que ça fonctionnerai si tu les enlèves:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \{\\fonttbl\{[.^(\}{2})]*\}{2}
    Bon courage

  8. #8
    Membre expérimenté
    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
    Points : 1 419
    Points
    1 419

  9. #9
    Membre actif Avatar de tnodev
    Profil pro
    SSSSS
    Inscrit en
    Mai 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : SSSSS

    Informations forums :
    Inscription : Mai 2005
    Messages : 182
    Points : 231
    Points
    231
    Par défaut
    Citation Envoyé par dingoth Voir le message
    Merci, c'est ça...

    Par contre je ne comprend pas trop le rôle du ?

  10. #10
    Membre expérimenté
    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
    Points : 1 419
    Points
    1 419
    Par défaut
    En fait, par définition, une expression régulière prend le plus de place possible. donc, si on écrit la chaîne baaaabab et qu'on cherche b.*b, par défaut l'expression prendra la chaîne complète seulement. Or, avec le ? (ce qui donne b.*?) prendra les plus petites chaînes possibles. Donc baaaab et bab. Voilà.

  11. #11
    Membre actif Avatar de tnodev
    Profil pro
    SSSSS
    Inscrit en
    Mai 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : SSSSS

    Informations forums :
    Inscription : Mai 2005
    Messages : 182
    Points : 231
    Points
    231
    Par défaut
    Voilà...

    merci !

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

Discussions similaires

  1. expression régulière pour les url
    Par phpines dans le forum Général Python
    Réponses: 2
    Dernier message: 17/04/2013, 14h49
  2. Trouver une expression régulière pour les valeurs des noeuds XML
    Par Motin dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 05/10/2011, 17h51
  3. Expression régulière pour les Urls
    Par scriptiz dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 31/05/2011, 07h48
  4. [RegEx] Expression régulière pour les balises HTML
    Par meloo dans le forum Langage
    Réponses: 3
    Dernier message: 09/07/2009, 15h23
  5. [RegEx] Expression régulière pour les retours de lignes
    Par Marshall_Mathers dans le forum Langage
    Réponses: 3
    Dernier message: 01/03/2007, 09h42

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