正規表現 目次 - ray88’s diary
JavaScript 目次 - ray88’s diary
JavaScript 正規表現・RegExp オブジェクト 宣言とフラグ・メソッド - ray88’s diary
JavaScript 正規表現による文字列の検索② Stringオブジェクトのmatchメソッド - ray88’s diary
JavaScript 正規表現による文字の置換・分割 stringオブジェクトのreplaceメソッドとsplitメソッド - ray88’s diary
※一般的にマッチした文字列全てを取り出すのであればstringオブジェクトのmatchメソッドを使用するほうが簡単に実現できる。ただし、matchメソッドではlastIndexプロパティの書き換えがされないため、マッチした文字列の位置が必要な場合はexceメソッドを使用するのが有効。
■excec メソッド
・文字列を検索し、正規表現にマッチした最初の文字列を1つだけ含む配列を返す
・正規表現にgフラグが付与されていれば、正規表現の lastIndex プロパティの値を
マッチした部分の次の位置を表す数値におきかえる
・再度excecメソッドを実行した場合、前回の続きから検索を開始する
・戻り値の配列に含まれる「Input:~」「Input:~」は拡張プロパティといい、
その配列のプロパティとして取り出すことができる
・マッチする文字列がない場合はnullを返す
【サンプルコード①】
function myFunction(){ const str = "I'm Bob. Tom is my friend." //構文:/正規表現/フラグ const reg = /.o./g; console.log(reg.exec(str)); }
【サンプルコード②】
function myFunction(){ const str = "I'm Bob. Tom is my friend." //構文:/正規表現/フラグ const reg = /.o./g; let result; //excecメソッドでマッチする文字列がある間だけ繰り返す while (result = reg.exec(str)){ //マッチした文字列result[0]と、indexプロパティの値をログ出力する console.log(`result:${result[0]},lastIndex:${result.index}`); } }
◆メモ◆