什么是等效的 0* |a* |b* |(a|b)*

what is equivalent 0* |a* |b* |(a|b)*

我一直在尝试这个练习,但我不知道如何继续下去。 等同于:

 0* |a* |b* |(a|b)*

Beeing 0 无效语言,我知道 0* = ε,所以正则表达式现在是:

ε | a* |b* |(a|b)*

我知道 b* 包含在 (a|b)* 中,a* 也是,因为:

(a|b)* = (a*|b*)* = (a* b*)*

但不一样,所以现在我不知道如何简化这个正则表达式

嗯,如果 a*b* 都包含在 (a|b)* 中,您只需从正则表达式中删除 a*b*(因为它是与 OR 相连)。然后你剩下 ε|(a|b)*。 Asterix 表示任意次数的重复,因此如果 select 0 次重复 (a|b)*,您将得到 ε。因此,您的正则表达式相当于:

(a|b)*