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

如何在Java中获取正则表达式树?,java,regex,Java,Regex,我正在研究从正则表达式中获取DFA的转换算法。此算法仅限于运算符(*,|,) 对于那些不知道每个操作员的意思的人可以进行检查 该算法分析从正则表达式创建的树的节点 这里我附上了一张图片,显示了一个表,其中的函数“第一个位置”和“最后一个位置”应用于创建的树的每个节点 例如:如果应用此正则表达式(a│b) *a(a)│b) 使用表格进行分析 算法的第一步是在(a)末尾添加符号。│b) *a(a)│b) #和枚举每个符号: 之后,构建树(我的问题),每个节点在上表中进行讨论,保持不变。位于节点右

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

对于那些不知道每个操作员的意思的人可以进行检查

该算法分析从正则表达式创建的树的节点

这里我附上了一张图片,显示了一个表,其中的函数“第一个位置”和“最后一个位置”应用于创建的树的每个节点

例如:如果应用此正则表达式
(a│b) *a(a)│b) 
使用表格进行分析

算法的第一步是在
(a)末尾添加符号
│b) *a(a)│b) #
枚举每个符号:

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

问题:在java中,我试图构建与
堆栈
相关的树,但得到了很好的结果,因为正如图中所示,并非所有节点都有两个子节点。我需要帮助来建造这棵树


注意:我尝试构建树的目的是将正则表达式传递给它的
postfix

表单。

您对帖子使用了一些自动翻译吗?图像不是英文的,而且“我试图构建一棵树,我们用电池说话,但得到了很好的结果”对我来说听起来真的很奇怪。你有没有为此检查过
ANTLR
parser/lexer。我英语说得不太好,我指的是中的
堆栈Java@aioobe图像是英文的now@L.Flor,我看到“Utmapos(c)”在右下角。我觉得那不像英语。你用过一些自动翻译的帖子吗?图像不是英文的,而且“我试图构建一棵树,我们用电池说话,但得到了很好的结果”对我来说听起来真的很奇怪。你有没有为此检查过
ANTLR
parser/lexer。我英语说得不太好,我指的是中的
堆栈Java@aioobe图像是英文的now@L.Flor,我看到“Utmapos(c)”在右下角。我觉得那不像英语。