我想找到所有以mc开头且后跟所有数字的单词
var myString="hi mc1001 hello mc1002 mc1003 mc1004 mc mca"
要求输出= [mc1001,mc1002,mc1003,mc1004]
我的解决方案:
var myRegEx = /(?:^|\s)mc(.*?)(?:\s|$)/g;
function getMatches(string, regex, index) {
index || (index = 1); // default to the first capturing group
var matches = [];
var match;
console.log("string==",string)
while (match = regex.exec(string)) {
console.log("string==",string)
matches.push(match[index]);
}
return matches;
}
var matches = getMatches(myString, myRegEx, 1);
console.log("matches===>",matches)
问题面临:我的代码只返回所有奇怪的假词 我正在使用节点js
答案 0 :(得分:5)
您可以搜索单词边界,然后搜索以下字母mc
和一些数字后跟另一个单词边界。
var string = "hi mc1001 hello mc1002 mc1003 mc1004 amc1005 mc mca mc1234a";
console.log(string.match(/\bmc\d+\b/g));

答案 1 :(得分:2)
也许这有用吗?
\b(mc)\d+\b
匹配所有以“mc”开头的单词,并以字母“c”后的任何位数继续。
答案 2 :(得分:-1)
你可以简单地使用
/(mc\d+)/g
匹配所有“mc”后跟数字