MDN x* : *Matches the preceding item x 0 or more times.*
正規表現アスタリスク使用
によれば、本質的に先行する文字が完全に任意であるべきです。文字列は存在するかどうかにかかわらず一致します。あるべき ' ""' 両方の式が均等に存在していないので、0回にマッチしなければならないと
1.
var text = "foobar";
var re = /q*/;
var found = text.match(re);
console.log(found); // prints '["", index: 0, input: "foobar"]'
しかし
var re = /qz*/;
console.log(found); // prints 'null'
:だからなぜそれがあることです戻ってきた。
または:
2.
var re = /fz*/;
console.log(found); // prints '["f", index: 0, input: "foobar"]'
しかし
var re = /fzq*/;
console.log(found); // prints 'null'
ここで何が起こっていますか?私の理解から、'fzq'
は存在しないので、0回マッチする必要があり、 '' ''を返すべきでしょうか?文字列全体ではなく文字単位で一致すると、'fzq*'
は'fz'
- 'f'
と同じ結果が返され、残りは0と一致します。しかし、明らかに、これは起こっていることではありません。
ここで何が起きているのか、誰かが少し光を当てることができますか?