我有一个可怕的大表达式,它表示**
运算符的功能,需要将它转换为使用pow
函数的代码。也就是说,我寻找一个正则表达式,用于查找和替换a*b**N*d
之类的术语a*pow(b,N)
,其中N
是一个整数。用a * pow(b,N)替换a * b ** N
这里,a
,b
,和c
是可以包含xy*-+()
和整数和a*
,*d
可以不存在条款。
我以某种方式坚持逃避所有这些字符。我准备投入一些手动后处理,所以正则表达式应该是健壮的,但不一定是完美的。
编辑:正如肯特指出的,b
包含嵌套括号时有一个困难。在我的情况下,没有嵌套的括号。这些条款是下面评论中给出的所有形式。
意思'A +(1 +( x *(mn))+ j)** p'将被转换成a + pow((i +(x *(mn))+ j),p)'? – Kent 2013-03-04 10:10:21
我觉得这不是正则表达式的工作... – Kent 2013-03-04 10:15:58
是的。然而,这些术语看起来像'4 * y ** 2 *( - 2 * x + 1)*( - y + 1)** 2'。你有什么建议? – Jan 2013-03-04 10:23:50