練炭ブログ

萌え壁紙、Irvine、DMonkey、Proxomitron などの情報を扱ってます。

DMonkey: RegExp.exec() と String.match()

コメントなし»

DMonkey の RegExp.exec()String.match() の動作が JavsScript と違っているのでまとめてみました。

参考

まず、JavaScript での動作。

var re = /regexp/; re.exec ('string');

マッチ結果を一つだけ格納したオブジェクト(キャプチャ結果も含まれる)を返す。

var re = /regexp/g; re.exec ('string');

マッチ結果を一つだけ格納したオブジェクト(キャプチャ結果も含まれる)を返す。
続けて re.exec('string') で次のマッチを行える。

'string'.match ('regexp');
'string'.match (/regexp/);

マッチ結果を一つだけ格納したオブジェクト(キャプチャ結果も含まれる)を返す。
/regexp/.exec('string') と同じ動作。

'strint'.match ('regexp', 'g');
'string'.match (/regexp/g);

全てのマッチ結果を格納した配列を返す。キャプチャ結果は得られない。

次に DMonkey での動作。

var re = /regexp/; re.exec ('string');

マッチ結果を一つだけ格納した配列を返す。キャプチャ結果は得られない。

var re = /regexp/g; re.exec ('string')

全てのマッチ結果を格納した配列を返す。キャプチャ結果は得られない。

'string'.match ('regexp');
'string'.match (/regexp/);

マッチ結果を一つだけ格納した配列を返す。キャプチャ結果は得られない。
/regexp/.exec ('string') と同じ動作だが、その .exec() 自体が JavaScript と異なっているので、こちらも JavaScript とは違う動作をする。

'strint'.match ('regexp', 'g');
'string'.match (/regexp/g);

全てのマッチ結果を格納した配列を返す。キャプチャ結果は得られない。

  • JavaScript、DMonkey いずれも、マッチしない場合は全て null を返す。
  • DMonkey ではキャプチャ結果が欲しい場合は RegExp.$n を参照しなければならない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です