ce code marche
mais le mien ne marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public static void test() { String output = ""; Pattern p = Pattern.compile("\\d"); Matcher m1 = p.matcher("01234"); if (m1.find()) { System.out.println("\t\t" + m1.group()); } //now reset the matcher with new data m1.reset(); System.out.println("After resetting the Matcher"); //iterate through the matcher while (m1.find()) { System.out.println("\t\t" + m1.group()); } }
Plus précisément une fois que le programme est entré puis sorti de la boucle for, il ne veut plus y rerentré, comme si la condition m.find() n'était plus remplie, comme si le reset n'avait aucun effet !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 private String extractNextWord(String _source){ Pattern _p = Pattern.compile("<span class=\"resTeaser\">.*?</span>"); Matcher _m = _p.matcher(_source); String _resSource = ""; String _nextWord = "null"; Random _r = new Random(); while (true) { int _resTarget = _r.nextInt(10); _m.reset(); for(int i=0 ; _m.find() && i<=_resTarget ; i++){ if (i == _resTarget) { _resSource = _m.group(0); } } ... //code avec break pour extraire une _string de _resSource si _resSource convient, sinon on repart dans le for pour en chopper un nouveau } return _string; }
Par contre si dans mon code je remplace
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part _m.reset();
la tout baigne. Ca me tue la race
Code : Sélectionner tout - Visualiser dans une fenêtre à part _m.reset(_source);
Info exclusive sur H4dop| à quiconque m'explique POURQUOI CA NE MARCHE PAS (je la posterai ici ceci dit, pas en pm).
edit : merci
Partager