Python 任何指向如何将正则表达式转换为状态机图的指针

Python 任何指向如何将正则表达式转换为状态机图的指针,python,regex,graph,Python,Regex,Graph,我正在开发一个网络检查工具,它允许用户通过网络流匹配regex。它工作良好,现在我想向它添加图形功能。这是为了向用户提供一个点图,表示正则表达式的内部状态机 我发现交互式regex调试器和可视化工具非常有用,并且希望有类似的基于Python的功能来生成图形。我有一个工具,它接受一种自定义正则表达式语言,并将表达式转换为这样的表达式。因为它与pythonre表达式不兼容,所以我不能使用它 有没有关于如何将Python正则表达式转换为FA状态机的指针?如果允许使用Python正则表达式的全部功能,这

我正在开发一个网络检查工具,它允许用户通过网络流匹配regex。它工作良好,现在我想向它添加图形功能。这是为了向用户提供一个点图,表示正则表达式的内部状态机

我发现交互式regex调试器和可视化工具非常有用,并且希望有类似的基于Python的功能来生成图形。我有一个工具,它接受一种自定义正则表达式语言,并将表达式转换为这样的表达式。因为它与pythonre表达式不兼容,所以我不能使用它


有没有关于如何将Python正则表达式转换为FA状态机的指针?

如果允许使用Python正则表达式的全部功能,这是无法实现的。原因是,所支持的某些表达式根本不存在,并且不能由表示。一个简单的例子是
r”(a+b\1“
,它匹配一些
a
、a
b
,然后匹配与前面相同数量的
a
(请参阅)。没有DFA承认这种说法。

编写一个正则表达式引擎。“要求我们推荐或查找工具、库或喜爱的非现场资源的问题与堆栈溢出无关…”有关详细信息,请参阅。无论如何,这可能是不可能的。Python的正则表达式引擎支持需要回溯的特性——我不相信有限自动机可以表达这些结构。(即使如此,生成的图表也可能是完全疯狂的。)同时,如果你看一看及其相关的问题,你会发现很多有用的信息。(它实际上可能不是一个dup,因为你不是在问如何做,而是在问一个现成的工具来做它……但它肯定是相关的。)@abarnert我还问了如何做的“指针”/“方法”。如果有这样一个工具,我会有兴趣弄清楚它是如何工作的。但我当然愿意自己去做。感谢您在第二条评论中的链接。这似乎更像是一条评论而不是一个答案。@abarnert:我认为“做不到”(带解释)是一个非常有效的答案类型。:)@NPE我对足总的回溯问题很确定。无论如何,谢谢你指出这一点。这个问题有很大的帮助。