使用嵌套括号解析字符串

时间:2012-05-03 01:34:50

标签: regex parsing nested brackets

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

A {B}

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

例如,给定:

“parsme {foo {”hello“} {”goodbye“} {{{} {bar {”up“} {”down“}}”

然后:

A =“parseme {foo {”hello“} {”goodbye“} {{{}}和B =”bar {“up”} {“down”}“

1 个答案:

答案 0 :(得分:5)

你不能使用正则表达式来解析任何需要任意嵌套的东西,比如括号(这是正则表达式的一个很好的限制,这里有点谷歌搜索可以帮助你)。

您需要使用Antlr等工具为此使用无上下文语法。