【发布时间】:2014-11-17 14:19:54
【问题描述】:
我有一个来自 UI 的复杂字符串,例如:
(region = "asia") AND ((status = null) OR ((inactive = "true") AND (department = "aaaa")) OR ((costcenter = "ggg") OR (location = "india")))
我需要拆分它并在我的代码中使用它,但我必须考虑大括号,以便分组完全如图所示。拆分后,我必须在每次迭代中得到类似以下内容并将其分解
第一次:
(region = "asia") AND
((status = null) OR ((inactive = "true") AND (department = "aaaa")) OR ((costcenter = "ggg") OR (location = "india")))
第二次:
(region = "asia") AND
(
(status = null) OR
((inactive = "true") AND (department = "aaaa")) OR
((costcenter = "ggg") OR (location = "india"))
)
等等……
关于如何实现这一点的任何指示?
【问题讨论】:
-
上下文无关语法。考虑使用像 ANTLR 这样的解析器生成器工具。请参阅“可以使用正则表达式匹配嵌套模式吗?”中的类似问题和相关答案。在stackoverflow.com/questions/133601/…
-
上面评论中的链接指向一个理论答案。但是,是的,您应该为此实现一个解析器。
标签: java regex parsing expression