1

我正在编写一个应用程序来解析一些命令。命令以下列形式给出:

甲{乙}

我只想要 A 和 B。A 是可选的,但这很容易处理。我遇到的问题是 A 和 B 都可以包含几乎任何字符,包括空格和“{”和“}”。括号也不需要平衡。这可以用正则表达式解析吗?如果不是,您认为可以做的最简单的事情是什么?

例如,给定:

“parsme { foo { “你好” } { “再见” } {{{ } { bar { “up”} { “down” } }”

然后:

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

4

1 回答 1

5

您不能使用正则表达式来解析任何需要像括号这样的任意嵌套的内容(这是正则表达式的一个公认的限制,在这里稍微搜索一下会有所帮助)。

为此,您需要使用 Antlr 之类的工具来使用上下文无关语法。

于 2012-05-03T02:37:51.623 回答