[Java] Pattern.matcher.groupCount()

Bonjour,
je veux compter le nombre de paires de chiffres dans un texte :
“03 24 56” doit donner 3
"85 54" doit donner 2
Ça marche pas avec un Pattern.compile(".([0-9]{2})."); je me dis : je suis pas doué …
Mais là où je comprends plus, un code copié sur internet me donne un résultat différent de celui annoncé :

p = Pattern.compile("J(ava)"); String candidateString = "This is Java. This is a Java example."; Matcher matcher = p.matcher(candidateString); int numberOfGroups = matcher.groupCount(); System.out.println("numberOfGroups =" + numberOfGroups);
Ça m’affiche 1 au lieu de 3 (2?)
(http://www.tutorialspoint.com/javaexamples/regular_count.htm)

Si je comprends bien la doc, groupCount() compte le nombre de groupes dans le motif. Alors je ne vois pas à quoi cette méthode peut bien servir.

Apparemment, il n’y a pas d’autre choix que de dénombrer le retour d’un match ? :

        Matcher matcher = Pattern.compile(regex).matcher(text);
        int occur = 0;
        while(matcher.find()) occur ++;      

Déjà j’aurais un doute sur le tuto … quand on donne un résultat qui semble faux c’est qu’il ne l’as pas tester …

Ton pattern n’est pas bon enlève les [mono].*[/mono]. Ensuite oui tu n’a pas d’autre choix.

Édition :
Avec Java 8 (et guava) tu dois pouvoir faire ça (mais c’est pas très efficace) :

final String chaine = /* … */;
Splitter.onPattern("[^0-9]")
        .omitEmptyStrings()
        .splitToList(chaine).stream()
                            .mapToInt(b -> b.length()%2)
                            .sum()

OK merci.
j’avais corrigé avec :
([0-9]{2} )|([0-9]{2}$)
et pour groupCount() ? Quelqu’un s’en est déjà servi ?

Oui: c’était il y’a longtemps, et ça normalement ça fonctionne. Pourquoi?

Je voulais comprendre à quoi cela pouvait servir une méthode qui compte des parenthèses dans une expression qu’on a écrit soi-même.

Parce que tu ne l’a pas forcément écrite toi. Tu peut le lire dans un fichier de configuration ou l’avoir en paramètre de ton programme.