Python中文
首页
教程
问答
标签
搜索
登录
注册
将简化正则表达式转换为语法T
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在研究将正则表达式转换为dfa的算法实现。第一步是将输入正则表达式转换为语法树。例如,a<em>b</em>(a | b)abc将转换为下面的树。在</p> <pre><code> . / \ . c / \ . b / \ . a / \ / \ / \ . | / \ / \ * * a b / \ a b </code></pre> <p>另外,我处理的正则表达式相当简单,唯一的特殊字符是“\”(转义符)、“|”(或运算符)、“(”“)”(括组的括号)和“*”(kleene star)。现在我遇到的问题是,对于如何(在Python中)从输入生成(作为数据结构)这个树,我感到困惑。我知道如何手工操作,但通过一段代码来做这件事让我陷入了困境。在</p> <p>为了进一步扩展这个问题,我是从左到右还是从右到左来解析表达式?递归有必要吗?假设我使用treelib来创建树,我如何着手解决这个问题。与其说我要求的代码太多,不如说是我应该从哪里开始的解释或伪代码片段。我应该自己做这件事还是有一个图书馆可以让这件事更容易?如有任何答案能帮助我进一步了解如何进行这项手术,将不胜感激。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>签出<a href="https://brilliant.org/wiki/shunting-yard-algorithm/" rel="nofollow noreferrer">Dijkstra's Shunting Yard Algorithm</a>。它可以用来将算术表达式转换为语法树。只需做一些更改,它就可以用于正则表达式。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何替换子字符串,但前提是它正好出现在两个单词之间
3 回答
如何替换字典中所有出现的指定字符
3 回答
如何替换字典中所有键的第一个字符?
4 回答
如何替换字典所有键中的子字符串
2 回答
如何替换字符串python中的变量值?
2 回答
如何替换字符串Python中的第二次迭代
9 回答
如何替换字符串y Python中不等于字符串x的所有内容?
5 回答
如何替换字符串中出现的第n个单词?
3 回答
如何替换字符串中单词的一部分
3 回答
如何替换字符串中同时出现的2个或更多特殊字符或下划线
5 回答
如何替换字符串中指定位置(索引)的字符?
7 回答
如何替换字符串中某个字符的所有匹配项?
4 回答
如何替换字符串中的
2 回答
如何替换字符串中的一个字符
2 回答
如何替换字符串中的主题(固定位置)
3 回答
如何替换字符串中的分隔逗号?
5 回答
如何替换字符串中的列名(python)?
10 回答
如何替换字符串中的制表符?
3 回答
如何替换字符串中的单个单词而不是用相同的字符替换其他单词
7 回答
如何替换字符串中的单个字符?
1 回答