我该如何使用正则表达式来捕获幂操作的语句呢?以下是一些例子:
24 (2*5)x y(y+1) 或者更复杂的,例如x4+(x*2)(x+1),这种情况下有两个匹配项("x4"和"(x*2)(x+1)")。
我已经实现了不带括号的匹配操作,使用的表达式是:
24 (2*5)x y(y+1) 或者更复杂的,例如x4+(x*2)(x+1),这种情况下有两个匹配项("x4"和"(x*2)(x+1)")。
我已经实现了不带括号的匹配操作,使用的表达式是:
Regex rPower = new Regex(@"\w\^\w");
但是,为了处理可能存在的括号,我想到了以下解决方案,但还不起作用...
Regex rPower = new Regex(@"(?(?=\()(.*?(?=\)))|(\w))\^(?(?=\()(.*?(?=\)))|(\w))");
希望能提供包括思路在内的任何帮助/解释,因为我不太了解正则表达式,现在才开始学习。
提前感谢。
编辑:为了清晰起见,我的意图是:
如果字符串中有一个子字符串,可能以"("开头,那么它应该读取从那个"("开始直到找到")"的所有内容,否则就假定它是一个"\w",由"^"分隔,紧接着又遵循像它开始的那种模式。
基本上,它将匹配表达式"(random_Expression)(random_Expression)",但它实际上可能并不是一个复杂的表达式,如果它不包含任何括号,那么我会假设它是一个简单的"\w"。
希望我表述得清楚: S
((((((((((2) ^ 2) ^ 2) ^ 2) ^ 2) ^ 2) ^ 2) ^ 2) ^ 2) ^ 2) ^ 2
是一个幂语句吗? - Kevin