Javaで正規表現で指定したグループのパターンが複数マッチした場合の取り方。

やっと作業が一段落したので。
正規表現で指定したグループのパターンが複数マッチした場合の取得方法。

PHPとかだとpreg_matchとかの関数をかけると一発で配列になって
返ってきてくれるんだけどJavaの場合、ライブラリとかを導入しない限り
ループを回してとらないといけないみたい。

// はてなのタイトルとかを見てみる。
String s = "[Java][Tomcat]java.lang.〜";
Pattern p = Pattern.compile("(\[.*?\])");
Matcher m = p2.matcher(s);
// こんな感じでループを回して取る。
while(m.find()){
    System.out.println(m.group(1));[Java]、[Tomcat]が表示される・・・はず。
}
// 

けっこーめんどい。

蛇足だけどmatchとfindで挙動に差があった。
findだと先頭に「.*」とかをつけなくていいんだけどmatchだと付けないと引っかかってくれない。
なんというか、微妙な挙動だ。