ここにコードがあります
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の間に何もないため、空の結果が得られます。iing\w*
\w+(?=ing\b)空の結果を避けるために使用できます
/\w*(?=ing\b)/g
ここで使用しているのは、なしまたはそれ以上を意味するため、両方を*キャプチャし、部分を読み取った後です。1 つ以上の場合は + を使用します。"read"ing""ingread