排除正则表达式中的单词

时间:2018-11-28 18:16:04

标签: computer-science regular-language

所以我不是100%肯定这是问的正确地方,但是stackoverflow似乎通常是任何计算机科学的天赐之物,所以我们开始吧。

我被要求为字母{a,b} *中所有不以bba结尾的单词生成一个正则表达式。我想出了这个:

(a U b)*( (aaa) U (aab) U (baa) U (bab) U (aba) U (abb) U (bbb) )

因此,这是一种语言,其中包含as和bs的任何组合,只要最后三个字母不是bba。我很确定这是正确的,并且描述了给定的语言。

但是,我觉得可以通过某种方式将其缩短,也许有一种方法可以巧妙地将正则表达式中的某个单词排除在某种语言之外。

(注意:这是有限自动机上下文中的正则表达式,不是用于单词比较的正则表达式。可悲的是,我只能在后者上找到信息。)

感谢所有帮助:)

1 个答案:

答案 0 :(得分:0)