gpt4 book ai didi

regex - 是否有程序允许我使用有限状态机图设计正则表达式?

转载 作者:行者123 更新时间:2023-12-02 10:43:25 28 4
gpt4 key购买 nike

我厌倦了正则表达式符号。它很丑陋、不可读并且无法调试。然而,几十年来,数学家一直在使用有限状态机来设计正则表达式。

Finite State Machines

如果我对正则表达式感到恼火,我会手动将其绘制为有限状态机,然后必须将有限状态机转换为我今天使用的任何可怕的正则表达式语法。

是否有一个程序可以让我设计有限状态机并输出正则表达式?

最佳答案

如果你懂Python,可以试试greeneryfsm 包用于有限状态机,lego 用于正则表达式对象。两者可以自由相互转换。

>>> from greenery import fsm
>>> x = fsm.fsm(
... alphabet={"1", "2"},
... states={"A", "B", "C", "D", "E"},
... initial="A",
... finals={"E"},
... map={
... "A": {"1": "C", "2": "A"},
... "B": {"1": "B", "2": "D"},
... "C": {"1": "E", "2": "C"},
... "D": {"1": "A", "2": "B"},
... "E": {"1": "C", "2": "D"}
... }
... )
>>> print(x.lego())
(1(11|2)*12(21*2)*1|2)*1(11|2)*1

我觉得我应该指出,你的示例有限状态机缺乏初始状态和任何最终状态,所以我猜测它们。此外,任意 FSM 通常会转换为非常糟糕的正则表达式,并且简化正则表达式在计算上是困难的......

关于regex - 是否有程序允许我使用有限状态机图设计正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19163942/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com