[英]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.