matchAll
一致するものがない場合、null値が返されます。
正規表現にグループが指定されていないが、シーケンスが一致する場合は、2次元配列が返されますが、2番目の次元は長さ1だけです。
関数を使用するには、まず結果がnullかどうかを確認します。
結果がnullの場合、シーケンスはまったく一致しません。
シーケンスが一致した場合、2D配列が返されます。
正規表現にグループ(カッコの集合で指定)がある場合、それぞれの内容が配列に返されます。
正規表現一致の要素[i] [0]は一致する文字列全体を返し、要素[i] [1](最初のグループは[i] [1] 、2番目の[i] [2]など)。
この構文は、JavaのPatternクラスのリファレンスにあります。
Processingで使用するmatchAllの使い方は以下の通りです。
String s = "Inside tags, you will find <tag>multiple</tag> ";
s += "<tag>pieces</tag> of <tag>content</tag>.";
String[][] m = matchAll(s, "<tag>(.*?)</tag>");
for (int i = 0; i < m.length; i++) {
println("Found '" + m[i][1] + "' inside a tag.");
}
//コンソールに印刷します:
// "タグ内に複数の"が見つかりました。 "
//タグ内に 'pieces'が見つかりました。 "
// "タグ内に 'コンテンツ'が見つかりました。"
図2:プログラム実行結果
〇matchAllの構文