一、问题:

函数涂鸦板在上一篇《识别幂函数输入的正则表达式》中,所使用的正则表达式还是非常初级的,即只能识别指数为正数的情况。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次。|号表示或者。