如何使用正则表达式Javascript捕获组?

舞ikoID

不幸的是,我向所有可以与JS正常合作的Jedi致以问候,但我不能。

我想在各个字符串'm10 m20 m30 xm40'的所有匹配项中进行迭代,除xm40之外,并提取数字10、20、30:

'  m10 m20 m30 xm40'.match(/\s+m(\d+)/g)

但这是我在chrome控制台中得到的:

'  m10 m20 m30 xm40'.match(/\s+m(\d+)/g)
(3) ["  m10", " m20", " m30"]

为什么“ m”也被捕获?我根本听不懂。我尝试了很多组合但都没有成功。有什么想法吗?

再见!

罗曼·佩列赫雷斯特

使用RegExp.exec()功能:

const regex = /\sm(\d+)/g;
const str = '  m10 m20 m30 xm40';
let result = [];

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }        
    result.push(+m[1]);
}

console.log(result);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章