如何使用正则表达式来捕获电源语句,以下是一些示例:
2 4
(2*5) x
y (y+1)
或更复杂的,例如 x 4 +(x*2) (x+1)在这种情况下它有 2 个匹配项 ("x 4 " 和 "(x*2) (x+1) ")
我设法使用以下表达式使其在没有括号的情况下工作:
Regex rPower = new Regex(@"\w\^\w");
但是为了处理可能存在的括号,我在想一些类似的东西,但它仍然不起作用......
Regex rPower = new Regex(@"(?(?=\()(.*?(?=\)))|(\w))\^(?(?=\()(.*?(?=\)))|(\w))");
任何包含其背后思考过程的帮助/解释都将不胜感激,因为我对正则表达式了解不多,而且我刚刚开始学习它。
提前致谢
编辑:为了清楚起见,我打算做的是:
如果在字符串中有一个可能以“(”开头的子字符串,在这种情况下,它应该从该“(”中读取所有内容,直到找到和“)”,否则假定它是一个“\ w”,用“^”分隔它又遵循另一种模式,就像它开始的模式一样。
基本上它会匹配表达式“(random_Expression) (random_Expression) ”,但它实际上可能不是一个复杂的表达式,如果它不包含任何括号,我会假设它是一个简单的“\w”。
我希望我说清楚了:S