繁体   English   中英

正则表达式简化问题

[英]Regular Expression Simplification Issue

我试图理解下面定义的正则表达式α和β之间的等价关系,但由于信息冲突而迷失了方向。

a+b:   a or b
ab:    concatenation of a and b
$:     empty string

α= (1 * + 0)+(1 * + 0) (0 + 1)*($ + 0 + 1)

β= (1 * + 0) (0 + 1)*($ + 0 + 1)

https://ivanzuzak.info/noam/webapps/regex_simplifier/表示α等于β

但是,我学校教导说,级联比联合具有更强的约束力,这意味着:

11 * + 0 = / = 1(1 * + 0)

这意味着我的α像这样用括号括起来:

α= (1 * + 0)+ ((1 * + 0)(0 + 1)*($ + 0 + 1))

然后

α= / = ((1 * + 0)+(1 * + 0)) (0 + 1)*($ + 0 + 1)


我希望很清楚我的问题是什么,我将不胜感激。 谢谢。

通常,当两个正则表达式匹配同一组单词时,它们被认为是等效的。

它们如何匹配并不重要。 因此,哪个运算符具有更高的优先级并不重要。

请注意,相等(书面形式)和等同(具有相同效果)之间的细微差别。

好的,事实证明我误解了为什么b + b <=> b。

如果L1是L2的子集,那就是L1∪L2<=> L2。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM