等价的是0 * | a * | b * |(a | b)*

时间:2019-07-31 14:55:55

标签: regex regular-language

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

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

用0表示无效语言,我知道0 * =ε,所以正则表达式为:

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

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

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

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

1 个答案:

答案 0 :(得分:1)

好吧,如果a*中同时包含b*(a|b)*,则只需从正则表达式中删除a*b*(因为它们与OR)。然后剩下ε|(a|b)*。 Asterix表示任意数量的重复,因此,如果选择(a|b)*的0次重复,则得到ε。因此,您的正则表达式等效于:

(a|b)*
相关问题