如何使用标准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“。