JavaScriptの正規表現におけるlastIndexプロパティ
正規表現オブジェクトには、
lastIndexというプロパティがあります。
これは、次にexecメソッドを呼び出したときに
検索を開始する位置を保持しています。
つまり、メソッドを呼び出すたびに、
このプロパティの値は変更されます。
例を見てみましょう:
let str = '12 34 56';
let reg = /\d+/g;
console.log(reg.lastIndex); // 初期値 0
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
console.log(reg.lastIndex); // 2, 5, 8
}
lastIndexの利点は、
値を読み取るだけでなく、変更も可能で、
指定した位置から検索を開始できることです。
次の例を確認してください:
let str = '12 34 56';
let reg = /\d+/g;
reg.lastIndex = 2;
let res = reg.exec(str)
console.log(res); // [34]
次の文字列が与えられています:
let str = '12:37 15:48 17:59';
5文字目から始まるすべての時刻の部分文字列を 見つけてください。