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 つのシンボル with(within) space」 + 「the」 + 「最大 3 つのシンボル with(within) space」をキャプチャすることです。

結果が重複する理由がわかりません ------> the a, the 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 に答える