关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。
想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。
7年前关闭。
Improve this question
我一直在寻找一些输入正则表达式或字符串并将其转换为 NFA 和 DFA 的算法,这实际上会打印出相应的最终 DFA 的转换表。
因此,我想知道是否已经有一个算法或 C 或 Python 库可以做到这一点,或者您是否有我可以实现的算法建议。
谢谢你。
最佳答案
我不确定这些链接中的任何一个是否可以帮助您。
第一个在 Python 中提供了一个非常简单的 NFA/DFA 实现,从 NFA 到 DFA 的转换。虽然它不会从正则表达式生成 NFA,但它并不难做到。第二个站点对 NFA 与 DFA 进行了长时间的讨论,包括大量代码示例(主要是 C 语言)以及指向我知之甚少的外部库的链接。第三个和第四个链接提供了第二篇文章作者开发的两个regex引擎实现的源码,包括从regex解析到NFA,再从NFA转换到DFA。但是请注意,我还没有看过这些项目中的任何一个。
否则,我会提到大多数现实世界的正则表达式引擎使用 NFA,而不是 DFA,因为一些扩展功能根本无法用 DFA 执行。因此,如果上面的链接都不能帮助您,那么您可能会很幸运地查看编译器-编译器,因为它们是实际使用 DFA 的那些。
关于regex - NFA DFA 和 Regex 到转换表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19477419/