我正在编写一个解析一些命令的应用程序。命令以下列形式给出:
A {B}
我只想要A和B. A是可选的,但这很容易处理。我遇到的问题是A和B几乎都可以包含任何字符,包括空格和'{'和'}'。括号也不需要平衡。这可以用正则表达式解析吗?如果没有,你认为最简单的事情是什么?
例如,给定:
“parsme {foo {”hello“} {”goodbye“} {{{} {bar {”up“} {”down“}}”
然后:
A =“parseme {foo {”hello“} {”goodbye“} {{{}}和B =”bar {“up”} {“down”}“
答案 0 :(得分:5)
你不能使用正则表达式来解析任何需要任意嵌套的东西,比如括号(这是正则表达式的一个很好的限制,这里有点谷歌搜索可以帮助你)。
您需要使用Antlr等工具为此使用无上下文语法。