ここにコードがあります
var str = 'a girl is reading a book!';
var reg = /\w*(?=ing\b)/g;
var res = str.match(reg);
console.log(res);
結果はクロムの ["read",""] です。
結果に「」がある理由を知りたいです。
ここにコードがあります
var str = 'a girl is reading a book!';
var reg = /\w*(?=ing\b)/g;
var res = str.match(reg);
console.log(res);
結果はクロムの ["read",""] です。
結果に「」がある理由を知りたいです。
これは予期される動作です
Firstread
は、それに続くためキャプチャされing
ます。Hereing
は一致するだけです。結果には含まれません。
今、私たちは次の位置にいます。つまり、 ..hereread
にいるでしょう。また、matches( due to ) になり、read と ingの間に何もないため、空の結果が得られます。i
ing
\w*
\w+(?=ing\b)
空の結果を避けるために使用できます
/\w*(?=ing\b)/g
ここで使用しているのは、なしまたはそれ以上を意味するため、両方を*
キャプチャし、部分を読み取った後です。1 つ以上の場合は + を使用します。"read"ing
""ing
read