JavaScriptのマッチVs execのための説明が必要です。 hereいくつかのいずれかがはJavaScriptのVs execと一致しています
が、最初にすべてのあなたは私の例に見るように、これはそうではありません「グローバル正規表現でのexecをループ内で使用されることを意味している」と述べています。私の例では、グローバル正規表現を持つexecは配列内のすべての一致を返しています!第二に、彼らはString.matchのためにループを通す必要のない全てのマッチを返すと言います!しかし、これも私の例では起こりません。入力文字列を返すだけですか?私は間違っている/間違ったことをしたことがありますか?
var myString = "[22].[44].[33].";
var myRegexp = /.*\[(\d*)*\].*\[(\d*)*\].*\[(\d*)*\].*/g;
var execResult = myRegexp.exec(myString);
console.log(execResult.length);
console.log(execResult[1]);// returns 22 and execResult has all of my matches from index 1 to the length of array
var matchResult = myString.match(myRegexp);
console.log(matchResult.length);
console.log(matchResult);// returns just myString which is "[22].[44].[33]."! Why is that?
''キャプチャグループを持っていれば、execは必須です」と誤解していると思います。なぜなら、 '.match()'は指定されたすべてのキャプチャされたグループの配列を返します。あなたは最初の文章で多くを暗示しています。そして、あなたは明らかにそれぞれの仕組みを知っています。たぶんあなたは、 "グローバルフラグと' .exec() 'を使用して、再帰的に1つまたは複数のキャプチャグループを適用する必要がある場合は、もっと重要なことを意味するでしょうか? –