JavaScript

RegExp.prototype.exec() メソッド

 編集:2022.08.22 by T.A.

その RegExp で指定文字列との一致情報を配列で返します。lastIndex プロパティ有効です。

構文
RegExp.exec(str)
RegExp RegExp。またはリテラル表記。
str 正規表現の検索の対象となる文字列。
戻り値

検索に成功した場合は配列を返し、一致に失敗した場合は null を返します。

解説

JavaScript の RegExp オブジェクトは、global または sticky フラグが設定されている場合(例えば /foo/g/foo/y) はステートフルになります。これは前回の一致位置を lastIndex に格納します。これを内部的に使用することで、exec() はテキストの文字列内で(キャプチャ グループのある)複数の一致を反復処理することができます。これは単なる文字列の一致を取得する String.prototype.match() とは対照的です。

より新しい関数として、(キャプチャ グループによる)複数の部分の文字列の一致を単純化する String.prototype.matchAll() が提案されています。

true か false かを知るために検索を実行するのであれば、RegExp.prototype.test() メソッドを使用してください。

文字列中での位置を知るために検索を実行するのであれば、String.prototype.search() メソッドを使用してください。

S="ABCabcabc";
RE=/a/g;
D=RE.exec(S); //=[object]:a
	//0=[string]:a
	//index=[number]:3
	//input=[string]:ABCabcabc
	//groups=[undefined]:undefined
D=RE.lastIndex; //=[number]:4

テスト