正規表現内の(ネストされている可能性のある)キャプチャグループを識別し、ツリーを作成する必要があります。特定のターゲットはJava-1.6であり、理想的にはJavaコードが欲しいです。簡単な例は次のとおりです。
"(a(b | c)d(e(f * g))h)"
これはに解析されます
"a(b|c)d(e(f*g))h"
... "b|c"
... "e(f*g)"
... "f*g"
ソリューションは、理想的には、カウント式、数量詞など、およびエスケープのレベルを考慮に入れる必要があります。ただし、これを見つけるのが簡単でない場合は、使用する構文を制限できるため、より単純なアプローチで十分な場合があります。
編集します。明確にするために。正規表現文字列自体を解析したい。そのためには、Java1.6正規表現のBNFまたは同等のものを知る必要があります。私は誰かがすでにこれをしていることを望んでいます。
結果の副産物は、プロセスが正規表現の有効性をテストすることです。