正規表現にマッチした部分の表示

正規表現でマッチした部分を置換する、というのはよくあるんですが、マッチした部分を抽出して表示するってのはどうするんだろう、と昔思ってたことがあってその時はよく分かりませんでしたが、ひょんなことから分かったのでメモ。

        String targetString = "ban, pan, an, pn, pen, pension";

        Matcher matcher = Pattern.compile("p[a-z]+n").matcher(targetString);
        while ( matcher.find() ) {
            System.out.println(matcher.group());
        }

これで、「pan」「pen」「pension」がコンソールに出力されます。