一、问题:
在上一篇《识别幂函数输入的正则表达式》中,所使用的正则表达式还是非常初级的,即只能识别指数为正数的情况。y = x^2 能够被识别,而 y = x ^ -2,则不能被识别。
现在要改进原正则表达式,使它能够识别这样的幂函数输入:
y = x ^ 2
y = x ^ –2
y = x ^ + 2
y = x ^ (-3/2)
二、解决方案:
增强的正则表达式为:/(\w+)\s*\^\s*([-\+]?\s*\w+|\(.*\))/
初级的正则表达式为:/(\w+)\s*\^\s*(\w+)/
三、原理:
在初级的正则表达式基础上,本增强版本只对^号后半部分作了修改。?号表示一个字符可以不出现,或者仅出现1次。|号表示或者。