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?
1
A
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".
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. –
Oui, j'aurais dû clarifier cela (puisqu'il y a deux regexes donnés). –
Fonctionne comme un charme, merci – Jorn