gpt4 book ai didi

regex - 找到正则表达式的补码

转载 作者:行者123 更新时间:2023-12-05 00:30:59 24 4
gpt4 key购买 nike

我的练习单上有一个问题可以找到两个公式的补码

(1) (aa|bb)*


(2) (a|b)(aa|bb)(a|b) .

我认为两者的互补a* | b* ,仅表示 a的或仅 b的?

最佳答案

您需要通过通常的程序:

  • 将正则表达式转换为 NFA。
  • 将 NFA 转换为 DFA。对于简单的情况,可以很容易地(手动)直接将正则表达式转换为 DFA。
  • 将所有非终止状态转换为终止状态,反之亦然。
  • 将补充 DFA 转换为正则表达式。 This is one detailed example of such conversion

  • 我不会告诉你结果,因为它是练习,但我会告诉你第一个公式的 DFA (aa|bb)* :

    Formula 1

    由此可以清楚地看到 a*b*不会给出正确的结果。你永远不会在 结束陷阱 状态(在补充正则表达式中成为终止状态),您可能最终处于状态 2a/2b (它变成 - 在补充正则表达式中的终止状态)。

    关于regex - 找到正则表达式的补码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15452353/

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