如何在Java中获取正则表达式的表达式树?

时间:2016-09-27 18:38:25

标签: java regex

我正在使用转换算法从正则表达式中获取DFA。此算法仅限于运算符(*,|,。)

对于那些不了解每个运营商含义的人,可以查看this

该算法分析从正则表达式

创建的树的节点

这里我附上了一张图片,其中显示了一个表格,其中包含可用的第一个位置和最后一个位置,该位置应用于所创建的树的每个节点。

enter image description here

例如:如果使用表格申请此正则表达式(a│b)*a(a│b)分析。

算法的第一步是在每个符号的最后#(a│b)*a(a│b)#添加符号enumerate

regex

稍后构建树(我的问题),并在上表中讨论每个节点,保持不变。在{} PmraPos(第一个位置)的节点右侧,在{} UtmaPos(结束位置)左侧。

enter image description here

问题:在java中,我尝试构建与Stack交谈的树,但结果很好,因为正如您在图片中看到的那样,并非所有节点都有两个孩子。我想要帮助来构建树。

注意:我尝试构建树的方法是将正则表达式传递给postfix形式。

0 个答案:

没有答案