1

私はいくつかのコマンドを解析するためのアプリケーションを書いています。コマンドは次の形式で提供されます。

A {B}

AとBが欲しいだけです。Aはオプションですが、処理は簡単です。私が抱えている問題は、AとBの両方に、空白と「{」および「}」を含むほとんどすべての文字を含めることができるということです。ブラケットもバランスを取る必要はありません。これは正規表現で解析できますか?そうでない場合、あなたができると思う最も簡単なことは何ですか?

たとえば、次のようになります。

"parsme {foo {"hello "} {" goodbye "} {{{} {bar {" up "} {" down "}}"

それで:

A = "parseme {foo {"hello "} {" goodbye "} {{{}" and B = "bar {" up "} {" down "}"

4

1 に答える 1

5

正規表現を使用して、括弧などの任意のネストが必要なものを解析することはできません(これは正規表現の十分に確立された制限であり、ここで少しグーグルすると役立ちます)。

これには、Antlrなどのツールを使用して文脈自由文法を使用する必要があります。

于 2012-05-03T02:37:51.623 に答える