正则表达式匹配圆括号后的内容

时间:2014-01-30 18:26:04

标签: java regex

我有一些表达方式&我需要将所有这些提取到列表中

Example                            Output
(A + B)/(C + D)+(E / F)           {(A + B),/, (C + D), +, (E / F) }
(A + B)/(C + D)                    (A + B), /,  (C + D)

我还需要得到括号外的运算符。

我用过这个,但这只能在括号中获取数据

Pattern p = Pattern.compile("(\\(.*?\\))");
Matcher m = p.matcher(exp7);
List<String> expressions = new ArrayList<String>();
while(m.find())
{
   expressions.add(m.group());
}

此外,如果我有一个类型

的表达式

(A / B) + C我需要{(A / B), +, C}

通过使用上述模式,我只能检索(A / B)。可以使用正则表达式来获取上述类型表达式的所有数据。

1 个答案:

答案 0 :(得分:0)

我知道如何通过两个步骤来解决这个问题:

<强>步骤1。

搜索模式:

(\([^\(^\)]*\)|[^\(^\)]+)

取代:

\1,

结果:

(A + B)/(C + D)+(E / F)   (A + B),/,(C + D),+,(E / F),
(A + B)/(C + D)           (A + B),/,(C + D),    

第2步。

最后摆脱不必要的逗号。 添加“{”和“}”。