4

ここにコードがあります

var str = 'a girl is reading a book!';
var reg =  /\w*(?=ing\b)/g;
var res = str.match(reg);
console.log(res);

結果はクロムの ["read",""] です。

結果に「」がある理由を知りたいです。

4

2 に答える 2

7

これは予期される動作です

Firstreadは、それに続くためキャプチャされingます。Hereingは一致するだけです。結果には含まれません。

今、私たちは次の位置にいます。つまり、 ..herereadにいるでしょう。また、matches( due to ) になり、read と ingの間に何もないため、空の結果が得られます。iing\w*

\w+(?=ing\b)空の結果を避けるために使用できます

于 2013-01-31T10:22:57.387 に答える
2

/\w*(?=ing\b)/g
ここで使用しているのは、なしまたはそれ以上を意味するため、両方を*キャプチャし、部分を読み取った後です。1 つ以上の場合は + を使用します。"read"ing""ingread

于 2013-01-31T10:26:16.000 に答える