Javaのツリーデータ構造などに括弧で囲まれた文字列を変換する作業を行っていf(d(a c(b))e)
ます(文字列表現を使用してツリーをインスタンス化できるようにする方法に取り組んでいます)。上記の文字列では、 はツリーのルート ノードであり、サブツリー atとリーフ ノード atf
に分岐します。現在のノードのラベルとして識別できた後、 .d
e
f
d(a c(b))e
Java の正規表現を使用して子を識別できるようにしたいと考えています。この場合、d(a c(b))
およびe
. したがって、要件は次のとおりです。
文字列では、単一の文字の後に括弧が続く場合とそうでない場合があります。括弧が続く場合は、ネストされた括弧が含まれていても、内部のすべての部分文字列を返します。したがって、正規表現はd(a c(b))
orに一致しe
ます。
さらに、これが 2 つの子を持つノードだけでなく、複数のノードでも機能するようにしたいと考えています。括弧で囲まれた可能性のある文字列は、3 つのリーフをf(a b c)
ルートとするツリーである可能性があります。f
これまでのところ、私は持っています.\(?[^\(\)]\)?
が、これは機能しません。