如何使用标准java api从字符串派生所需的序列?

我需要以特定格式获取字符串的一部分。 尝试从拆分,子串到模式和匹配器的所有内容。 但每次失败都有其中一个要求。

假设

str = (((abc) shdj (def) iueexs (ghi)) mkek ONE(tree23) bjm (twooo(bug OR bag)) mvnj THR-EE($##)) 

需要的术语是:

 "Hard Coded Term1":abc "Hard Coded Term2":def "Hard Coded Term3":ghi ONE:tree23 twooo:bug,bag THR-EE:$## 

提供硬编码条款,如前三个案例。 救命!救命!

呃,你需要首先正确地指明你的要求,最好是BNF或同等的。 有了这个,您可以通过regexp (^|[( ])[(]([^ )])[)] (使用第二组)找到硬编码的术语,其他术语使用regexp像([0-9a-zA-Z-_])[(]([^ )])[)] (使用第一组作为名称,第二组作为值,但是您需要进一步处理第二组进行拆分在操作数上)。

你正在做语言解析的附近。 只是看着它,它看起来像递归下降解析器 ,但有一个简短的例子,很难确定。

棘手的想法看起来是区分shdj (def) ,它应该在ONE(tree23)的“硬编码术语’def’中恢复,它应该返回”ONE:tree23“。