JavaScriptの正規表現matchメソッドにおけるキャプチャグループ
ご存知のように、matchメソッドで見つかった部分文字列は、
結果の配列の0番目の要素に入ります。
この配列の他の要素には、いわゆるキャプチャグループ(ポケット)が入ります。
キャプチャグループは、見つかった文字列を個別の部分に分割する方法です。 これを使用するには、正規表現の一部を括弧で囲む必要があります。 この場合、結果の配列には、見つかった文字列に加えて、 これらの括弧内の正規表現に一致したものが含まれるようになります。
実際に試してみましょう。 次のような時刻を含む文字列があるとします:
let str = '12:34';
この時刻から時間と分を別々のキャプチャグループに入れてみましょう:
let res = str.match(/(\d+):(\d+)/);
結果を見てみましょう:
console.log(res[0]); // '12:34' - 一致した全体
console.log(res[1]); // '12' - 1番目のキャプチャグループ
console.log(res[2]); // '34' - 2番目のキャプチャグループ
ドメインを含む文字列が与えられています:
let str = 'sss domain.ru zzz';
このドメインを見つけ、その名前を1番目のキャプチャグループに、 ドメインゾーンを2番目のキャプチャグループに入れてください。
日付を含む文字列が与えられています:
let str = '31.12.2025';
日を1番目のキャプチャグループに、月を2番目に、 年を3番目のキャプチャグループに入れてください。