[英]Regular expression to match single parentheses
我需要解析excel公式以生成C兼容代码。 现在,我需要使用Java解析“ power”表达式:
1. F15^2
2. (A1*A2)^2
3. SQRT((A1*A2)^2)
我有以下正则表达式:
(\([^)]*\)|\w+)\^(\([^)]*\)|\w+)
此表达式正确解析1.和2.。
1. Group1: F15, group2: 2
2. Group1: (A1*A2), group2: 2
但是,对于3.,它太多返回1括号:
3. Group1: ((A1*A2), group2: 2
我应该如何修改我的正则表达式,使组1变为(A1 * A2)而不是((A1 * A2)?
如果您仅需要它来处理这些示例,则将正则表达式更改为: (\\([^)(]*\\)|\\w+)\\^(\\([^)]*\\)|\\w+)
(我添加了一个(
)
但是总的来说,我不认为正则表达式是正确的方法。 我会尝试寻找一个可以进行括号解析的库,而不是自己尝试实现。
加()应该工作
(\([^)^(]*\)|\w+)\^(\([^)^(]*\)|\w+)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.