2017-11-16 15 views
0

C互換コードを生成するためにExcel式を解析する必要があります。今、私は、Javaを使用した「パワー」の表現を解析する必要があります。一括弧に一致する正規表現

1. F15^2 
2. (A1*A2)^2 
3. SQRT((A1*A2)^2) 

私は次の正規表現があります。この式は1.と2.を正しく解析し

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

を。

1. Group1: F15, group2: 2 
2. Group1: (A1*A2), group2: 2 

しかし3.それはあまりにも多くの1つの括弧を返します:グループ1は、(A1 * A2)となるよう

3. Group1: ((A1*A2), group2: 2 

どのように私は、正規表現を変更する必要があります代わりに、((A1 * A2)を?

+0

私が思うに動作するはず加える '[^)]'と '[^()]'仕事ができます。 – Math10

答えて

0

交換、(は)

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

あなたはちょうどそれがこれらの例で作業する必要がある場合は、私はこれに正規表現を変更します:(\([^)(]*\)|\w+)\^(\([^)]*\)|\w+)は(私が追加単一(

しかし、一般的に、私は考えていません正規表現は正しい方法です。自分で実装しようとするのではなく、かっこの構文解析を行うことができるライブラリを見つけようとします。

関連する問題