JavaScript中的RegExp#exec()不能处理带有'g'标志的多个结果吗?如果不能,有什么替代方法?
我有一个像这样的字符串:
a* 2
b 3
c* 4
我希望提取只有星号的那些行。我已经编写了这个正则表达式:
/\w+\*\s+(\d+)\n/g
(即匹配一个单词后面跟着一个字面上的星号,接着是空格、数字捕获组和换行符,并且全局标志被打开)。
在令人愉快的https://regex101.com/#javascript中,将字符串应用于正则表达式会返回两个匹配项,如预期所示:
Match 1
1. '2'
Match 2
1. '4'
但在node.js中,我得到了这个:
> match = re.exec(str)
> match
[ 'a* 2\n', '2', index: 0, input: 'a* 2\nb 3\nc* 4\n' ]
看起来match object不是多维的,或者至少只捕获第一个匹配项。
我是否忽略了一些基本的东西?并且(如我在顶部所问)有合理的替代方案吗?