繁体   English   中英

正则表达式匹配单个括号

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM