所以StackOverflow已经通过优化我的正则表达式来匹配字符串中的功率计算帮助我走了这么远:
var regex = /[0-9]+^[0-9]+/;
此时,它只匹配字符串中的第一个,但我希望它返回该字符串中的所有功率计算,使用:
str.match(regex);
在模式中添加/g
修饰符以强制全局匹配,如下所示:
/[0-9]+^[0-9]+/g;
然而,这里可能存在一个微妙的问题。想想看:
var x = '3^4^5',
r = /[0-9]+^[0-9]+/g;
x.match(r); // [3^4]
是的,二次幂exp不匹配:由于regex引擎已经覆盖了'3^4'部分,下一次匹配将不会覆盖4^5
。所以你可能需要把你的正则表达式扩展成这样:
/[0-9]+(^[0-9]+)+/g;
您必须使用g
(全局修饰符)
/regexp/g
document.write(str.match(patt1));//44^3,2^3