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だと付けないと引っかかってくれない。
なんというか、微妙な挙動だ。