加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 找到正则表达式的补码

发布时间:2020-12-14 05:50:26 所属栏目:百科 来源:网络整理
导读:在我的练习表上有一个问题是找到两个公式的补码 (1)(aa | bb)* 和 (2)(a | b)(aa | bb)(a | b). 两者的补充在我看来是* | b *,只表示一个或只有一个? 解决方法 你需要通过常规程序: 将正则表达式转换为NFA. 将NFA转换为DFA.对于简单的情况,很容易直接从正
在我的练习表上有一个问题是找到两个公式的补码

(1)(aa | bb)*

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

两者的补充在我看来是* | b *,只表示一个或只有一个?

解决方法

你需要通过常规程序:

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读