Javascript正则表达式匹配字符串中的所有幂计算

1 javascript regex

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

var regex = /[0-9]+\^[0-9]+/;
Run Code Online (Sandbox Code Playgroud)

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

str.match(regex);
Run Code Online (Sandbox Code Playgroud)

rai*_*7ow 6

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

/[0-9]+\^[0-9]+/g;
Run Code Online (Sandbox Code Playgroud)

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

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

是的,第二次幂expr不匹配:因为正则表达式引擎已经覆盖'3 ^ 4'部分,下一场比赛就不会覆盖4^5.所以你可能需要增加你的正则表达式:

/[0-9]+(\^[0-9]+)+/g;
Run Code Online (Sandbox Code Playgroud)