【发布时间】:2014-06-03 05:01:15
【问题描述】:
我正在尝试递归或迭代地匹配这样的字符串模式。
term :- 可以是任何变量(字符串)或整数
表达式:- 术语 + 表达式或术语 * 表达式或术语/表达式或术语 - 表达式
我们的想法是为这样的数学表达式找到匹配的模式
ZING^30*sin(45)+46*LENGTH-20
让我们假设这个词已经准备好了。
像往常一样,我将从一个非常糟糕的...在 java 中开始。
[[term\\+]*[term\\*]*[term\\\]*[term\\-]*]+term
【问题讨论】:
-
看起来你可能有一个可以与递归下降解析器一起使用的语法......虽然不知道你是否可以使用正则表达式
-
您能否通过示例详细说明输入和预期输出。
-
您的示例包含一个 sin() 函数,该函数与您对表达式语法的描述不匹配。
-
@EJP 我认为它与“term”的“variable(string)”定义相匹配,假设“variable”表示任何标识符,“string”表示任何字符序列(可能不包括括号)。至少我是这么认为的。要求不明确。
标签: java regex expression