【问题标题】:RegEx for transforming a path graph用于转换路径图的正则表达式
【发布时间】:2019-10-03 20:57:12
【问题描述】:

我们几乎被要求为 DFA 找到一个正则表达式,如上面的链接所示。我得到的是从 s0 到 s2 的路径,我认为是 (a(b(ab)) 和 s0 到 s4,我认为是 b(a(ba))。但我'不确定如何包含从 s1 到 s3 的路径。

我试着看一下这个link,试图了解他们如何将他们的 DFA 转换为正则表达式,但我仍然迷路了。

【问题讨论】:

    标签: regex regex-negation regex-lookarounds regular-language dfa


    【解决方案1】:

    感谢这个有趣的问题!

    我们需要把它分解成几个部分:

    (a{s1 to end})|(b{s3 to end})
    

    {s1 to end} 是:

    {s1 to s1}*{s1 to end without coming back to s1}
    

    {s1 到 s1} 是:

    (a(ab)*b)|(ba)
    

    {s1 结束而不回到 s1} 是:

    b|(aa(ba)*)
    

    {s3 to end} 是:

    {s3 to s3}*{s3 to end without coming back to s3}
    

    {s3 到 s3} 是:

    (b(ba)*a)|(ab)
    

    {s3 结束而不回到 s3} 是:

    a|(bb(ab)*)
    

    然后我们可以把它们放在一起:

    (a{s1 to s1}*{s1 to end without coming back to s1})|(b{s3 to s3}*{s3 to end without coming back to s3})
    

    最终给出:

    (a((a(ab)*b)|(ba))*(b|(aa(ba)*)))|(b((b(ba)*a)|(ab))*(a|(bb(ab)*)))
    

    编辑:修复了最后一个表达式中出现的错误

    【讨论】:

      猜你喜欢
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 2019-04-09
      • 1970-01-01
      • 2013-02-12
      相关资源
      最近更新 更多