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

API standards et tierces Java Discussion :

Expression reguliere avec Regex


Sujet :

API standards et tierces Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 63
    Par défaut Expression reguliere avec Regex
    Salut,

  2. #2
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,

    en faisant cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern p = Pattern .compile("<table .*>\\s*.*</table>");
    c'est comme si tu disais que ton fichier html commence par <table> et se termine par </table>
    donc, essaie avec ".*" avant <table> et aussi après </table>
    aussi, pour récupérer le contenu des balises table, tu me le contenu entre parenthèses pour le récupérer avec la méthode group(int index)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern p = Pattern .compile(".*<table .*>(.*?)</table>.*");

  3. #3
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    essaie avec ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern ptrn = Pattern.compile(".*?<table[^>]*>(.*?)</table>.*?");

  4. #4
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    c'est normal puisque tu lis ligne par ligne
    généralement un code html qui contient un tableau est ainsi formaté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ....
    <table>
        <tr>
            <td>...</td><td>....</td>
        </tr>
    </table>
    ....
    donc la première ligne que tu lis avec readLine, elle te retournera "<table>", et ceci ne correspond pas à ton pattern, donc, essaie de mettre tout ton html dans un String, et après tu le passes à ton matcher

  5. #5
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    par exp, tu pourrais utiliser un StringBuilder auquel tu ajoutera chaque ligne lue, et à la fin de la lecture, tu le passes à la méthode matcher

    rmq: dans ton code, tu créais à chaque boucle un objet Pattern, alors que tu utilises le même Pattern, donc, pas la peine de le créer pour chaque ligne lue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    String ligneLue;
    StringBuilder codeHTML = new StringBuilder()
    String expReguliere = ".*?<table[^>]*>(.*?)</table>.*?";
    Pattern p = Pattern.compile(expReguliere);
     
    while ((ligneLue = in.readLine()) != null) {
    	codeHTML.append(ligneLue);
    }
    Matcher m = p.matcher(codeHTML.toString());
    while(m.find())
    	System.out.println(m.group(1));

  6. #6
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    il fait combien ton fichier html ( il doit vraiment être gros !! )

  7. #7
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    c'est quoi l'url pour que je teste si j'ai le même problème

    [ EDIT ] je vien de le tester avec la page d'accueil de developpez.com, et ça marchait, sachant que mon pc est loin d'être une machine puissante

    une remarque, avec la regex proposée plus haut, il y aura un petit souci dans le cas d'une table qui est à l'intérieur d'une autre table

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

Discussions similaires

  1. expression reguliere avec regex
    Par voyageur dans le forum C#
    Réponses: 4
    Dernier message: 25/03/2008, 15h52
  2. [ORACLE] Expression reguliere avec like
    Par tchoukapi dans le forum Langage SQL
    Réponses: 7
    Dernier message: 14/11/2007, 16h41
  3. [Bash] Expression reguliere avec expr match
    Par cerede2000 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 19/10/2007, 14h41
  4. [c#][asp.net]expression reguliere avec
    Par zitoun dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/04/2007, 10h15
  5. [langage] Ptit Probleme expression réguliere avec perl
    Par Shoot Again dans le forum Langage
    Réponses: 3
    Dernier message: 02/12/2004, 12h44

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