正则表达式JavaScript重叠匹配

正则表达式JavaScript重叠匹配,javascript,regex,Javascript,Regex,如果我有一个像fooba这样的字符串,我想同时捕获foo和fooba我该怎么做?如果我使用foo | fooba它只包含第一个foo,而不是fooba为两种模式使用lookaheads(零宽度断言): (?=(foo))(?=(fooba)) 我不能使用match,只有exec函数即使使用exec按钮,您也可以以相同的方式使用捕获的组。使用exec您可以执行:var m=/(?=(foo))(?=(fooba))/.exec('fooba')然后使用m[1]和m[2]谢谢,m[0]中有什么?我

如果我有一个像
fooba
这样的字符串,我想同时捕获
foo
fooba
我该怎么做?如果我使用
foo | fooba
它只包含第一个
foo
,而不是
fooba

为两种模式使用lookaheads(零宽度断言):

(?=(foo))(?=(fooba))

我不能使用match,只有exec函数即使使用
exec
按钮,您也可以以相同的方式使用捕获的组。使用
exec
您可以执行:
var m=/(?=(foo))(?=(fooba))/.exec('fooba')
然后使用
m[1]
m[2]
谢谢,m[0]中有什么?我有一个空字符串。
m[0]
应该是完全匹配的,因为这里除了lookaheads之外什么都没有,所以
m[0]
是空的。如果将正则表达式更改为
/(?=(foo))(?=(fooba))./
则在
m[0]