Salut,![]()
salut,
en faisant celac'est comme si tu disais que ton fichier html commence par <table> et se termine par </table>
Code : Sélectionner tout - Visualiser dans une fenêtre à part Pattern p = Pattern .compile("<table .*>\\s*.*</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>.*");
essaie avec ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part Pattern ptrn = Pattern.compile(".*?<table[^>]*>(.*?)</table>.*?");
c'est normal puisque tu lis ligne par ligne
généralement un code html qui contient un tableau est ainsi formaté
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
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> ....
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));
il fait combien ton fichier html ( il doit vraiment être gros !! )
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![]()
Partager