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

正则表达式 – 我需要一些帮助来缩短这个正则表达式

发布时间:2020-12-14 05:47:23 所属栏目:百科 来源:网络整理
导读:我目前正试图进入学校的正则表达式,并且必须完成任务以缩短这个正则表达式: r = 0(e + 0 + 1)* + (e + 1)(1 + 0)* + e e是空字epsilon. 到目前为止,我得到了这个: r = 0(0 + 1)* + 1(1 + 0)* + e 考虑规则 r* = (e + r)* 但是,我真的不知道如何继续.如果不
我目前正试图进入学校的正则表达式,并且必须完成任务以缩短这个正则表达式:

r = 0(e + 0 + 1)* + (e + 1)(1 + 0)* + e

e是空字epsilon.

到目前为止,我得到了这个:

r = 0(0 + 1)* + 1(1 + 0)* + e

考虑规则

r* = (e + r)*

但是,我真的不知道如何继续.如果不是kleene星操作符,我可以使用分配法,但这不适用于此.我无法确定一个合适的法律继续这个正则表达式.

有用的提示吗?

编辑:

我想通过形成r来进一步向前迈进了一步

r = 0(1 + 0)* + 1(1 + 0)* + e

然后能够将它结合起来

r = (0 + 1)(0 + 1)* + e

那是对的吗?

此外,我们可以说

r = (0+1)*

这应该是最终形式

解决方法

除了一件事,我会说你自己的演绎是正确的.拿你原来的

r = 0(e + 0 + 1)* + (e + 1)(1 + 0)* + e

根据你的空白去除e,离开

r = 0(0 + 1)* + 1(1 + 0)*

或者用简单的单词0后跟任意数字的0或1或1,后跟任意数字的1或0.
因此,左侧表示必须至少有一个0,而右侧必须有一个1.这意味着必须至少有一个0或1.现在,你的正则表达式是我的一个我从来没有见过所以我不知道如何表达你的味道中的一个或多个(通常是一个)所以我会用常规正则表达式来表达它,这将是

r = [01]+

这意味着至少一次或多次重复一次或多次.

问候.

(编辑:李大同)

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

    推荐文章
      热点阅读