当我尝试在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);
});