1

所以 StackOverflow 已经通过优化我的正则表达式以匹配字符串中的功率计算来帮助我做到这一点:

var regex = /[0-9]+\^[0-9]+/;

此时它只匹配字符串中的第一个,但我希望它使用以下命令返回该字符串中的所有功率计算:

str.match(regex);
4

2 回答 2

6

/g修饰符添加到您的模式以强制全局匹配,如下所示:

/[0-9]+\^[0-9]+/g;

不过,这里可能存在一个微妙的问题。考虑一下:

var x = '3^4^5',
    r = /[0-9]+\^[0-9]+/g;
x.match(r); // [3^4]

是的,第二次幂 expr 不匹配:由于正则表达式引擎已经涵盖了 '3^4' 部分,下一场比赛将不会涵盖4^5. 因此,您可能需要将正则表达式扩充为:

/[0-9]+(\^[0-9]+)+/g;
于 2013-05-18T10:20:38.447 回答
1

你必须使用g(全局修饰符)

/regexp/g
document.write(str.match(patt1));//44^3,2^3
于 2013-05-18T10:20:57.360 回答