我有一个正则表达式:
/(alpha)|(beta)|(gamma)/gi
一些要匹配的文本:
Betamax. Digamma. Alphabet. Hebetation.
比赛是:
beta, gamma, alpha, beta
我正在寻找的价值观是:
1,2,0,1
...我可以确定在正则表达式中匹配的组的索引吗?
我有一个正则表达式:
/(alpha)|(beta)|(gamma)/gi
一些要匹配的文本:
Betamax. Digamma. Alphabet. Hebetation.
比赛是:
beta, gamma, alpha, beta
我正在寻找的价值观是:
1,2,0,1
...我可以确定在正则表达式中匹配的组的索引吗?
从字符串数组构建您的正则表达式,然后使用 indexOf 查找匹配项。
如果我们考虑您提供的确切样本,以下将起作用:
var r = /(alpha)|(beta)|(gamma)/gi;
var s = "Betamax. Digammas. Alphabet. Habetation.";
var matched_indexes = [];
var cur_match = null;
while (cur_match = r.exec(s))
{
matched_indexes.push(cur_match[1] ? 0 : cur_match[2] ? 1 : 2 );
}
console.log(matched_indexes);
我把它留给你,让循环的内容更加动态/通用:p