2009-06-18 25 views
1

J'ai un programme Java qui effectue une correspondance de chaînes. Je suis à la recherche de tout ce qui correspond \d+x\d+ dans une chaîne. Cela fonctionne, en utilisant les classes Pattern et Matcher. Cependant, pour analyser les pièces String que j'ai trouvées, je dois analyser manuellement le String que je reçois du Matcher.find() et Matcher.group(). Comment puis-je dire le Pattern Je cherche quelque chose sous la forme de (\d+)x(\d+) et obtenir le Matcher pour renvoyer ces groupes séparément? Donc, au lieu de la chaîne "1x23" je veux obtenir deux chaînes, "1" et "23".Comment obtenir plusieurs groupes regex à partir de Matcher en Java?

Répondre

8

Utiliser Matcher.group(int), et non Matcher.group().
Avec l'expression rationnelle et l'entrée données, group(1) doit être "1" et group(2) doit être "23".

+0

Notez que vous avez besoin de votre modèle pour être le second que vous avez listé: (\ d +) x (\ d +) pour que le module de configuration sache quels sont les groupes. –

+0

Oui, j'aurais dû clarifier cela (puisqu'il y a deux regexes donnés). –

+0

Fonctionne comme un charme, merci – Jorn