找到所有单词以特定字符开头,后跟字符串中的数字

时间:2017-08-02 08:15:37

标签: javascript jquery node.js regex

我想找到所有以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

3 个答案:

答案 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”后跟数字