Salut,
Tu peux utiliser les groupes dans ton pattern afin de pouvoir récupérer facilement les deux séquences de ton pattern :
Pattern ptrn = Pattern.compile("([a-z]+/NN) ([a-z]+/NN)");
Grâce à cela tu peux utiliser les méthodes group()/start()/end() pour récupérer la chaine concerné et l'index de début/fin.
Ensuite il suffit d'utiliser forcer l'index de début de la recherche avec find(int), en le positionnant au début du second groupe lorsqu'on trouve un élément :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| String texte = "test/NN process/NN faults/NN";
Pattern ptrn = Pattern.compile("([a-z]+/NN) ([a-z]+/NN)");
Matcher mtch = ptrn.matcher(texte);
// On commence la recherche au tout début de la chaine :
int start = 0;
while(mtch.find(start)){
// group() renvoi toute la chaine trouvé
// group(1) renvoit le premier groupe
// group(2) renvoit le second groupe
System.out.println("match = " + mtch.group());
// On récupère l'index de début du second groupe
// pour continuer la recherche à partir de là :
start = mtch.start(2);
} |
a++
Partager