Rechercher : dans
Par :

[Java] Expression régulière

Fab, le 13 nov 2006 à 14:11:26 
 Signaler ce message aux modérateurs

Bonjour,

J'ai un problème avec l'utilisation des expressions régulières en Java. Je cherche à capturer le contenu des groupes du type ( )*.

En effet, si j'utilise une chaîne du type "1+2-3+4" et l'expression régulière (\d)(([\+\-])(\d))* alors ma chaîne correspond bien à la l'expression régulière mais je ne parviens pas à récupérer chacun des entiers qui sont situés dans la parenthèse ()*. Je n'obtiens au final que le premier et le dernier.

Mon code :

Matcher m = Pattern.compile("(\\d)(([\\+\\-])(\\d))*").matcher(" 1+2-3+4");
		
if (m.matches())
for (int i=1; i<=m.groupCount(); i++)
System.out.println(m.group(i));


Le résultat :
1
+4
+
4


Est-ce que vous avez une idée pour améliorer ceci ?

Fab