0

我有字符串,想通过正则表达式捕获一个片段:

var regex = new RegExp("(\s?.{0,2}the.{0,2}\s?)", "i");
var str= " the apple the apple the apple the apple the apple the apple the apple"
alert(str.match(regex))

目标是捕获第一个“带有(内)空间的最大 3 个符号”+“the”+“带有(内)空间的最大 3 个符号”

我不明白为什么结果重复 ------> a, a

4

1 回答 1

3
var regex = new RegExp("(\s?.{0,2}the.{0,2}\s?)", "i");
                        ^                     ^   unnecessary capturing group.

match将为您处理表达式周围的捕获组。

你的正则表达式应该是:

var regex = new RegExp("\s?.{0,2}the.{0,2}\s?", "i");
于 2012-10-31T14:59:31.530 回答