当我尝试在js中执行正则表达式时:

var matc = source.match(/sometext(\d+)/g);


我得到的结果是“sometext5615”,“sometext5616” ...等
但是我想要的是:得到“5615”,“5616” ...等等

您知道如何仅获取括号内的内容吗?

最佳答案

JavaScript的全局匹配没有“全部匹配”,因此您不能在这种情况下使用g,也不能使用捕获组。最简单的解决方案是删除g,然后仅使用matc[1]获得5615,依此类推。

如果您需要在同一字符串中匹配多个,那么最好的选择是"search and don't replace"

var matc = [];
source.replace(/sometext(\d+)/g, function (_, num) {
    matc.push(num);
});

08-16 05:08