特定のグループを文字列でキャプチャするための簡単なコードを作成しました。
/[a-z]+([0-9]+)[a-z]+/gi (n chars , m digts , k chars).
コード:
var myString='aaa111bbb222ccc333ddd';
var myRegexp=/[a-z]+([0-9]+)[a-z]+/gi;
var match=myRegexp.exec(myString);
console.log(match)
while (match != null)
{
match = myRegexp.exec(myString);
console.log(match)
}
結果は次のとおりです。
["aaa111bbb", "111"]
["ccc333ddd", "333"]
null
bbb222ccc
しかし、ちょっと待ってください、なぜ彼はその部分を試さなかったのですか?
つまり、それは見ましたaaa111bbb
が、それなら彼は試してみるべきでしたbbb222ccc
...(それは貪欲です!)
私は何が欠けていますか?
また
見つめている
while (match != null)
{
match = myRegexp.exec(myString);
console.log(match)
}
2番目の結果までどのように進みましたか? 最初はありました:
var match=myRegexp.exec(myString);
後で (while ループで)
match=myRegexp.exec(myString);
match=myRegexp.exec(myString);
それは同じ行です...最初の結果がすでに表示されていることをどこで覚えていますか?