正则表达式简化问题
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。
我试图理解下面定义的正则表达式 α 和 β 之间的等价性,但我对相互矛盾的信息失去了理智。
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。