寻找正则表达式的补充

时间:2010-05-28 23:19:23

标签: regex

alt text http://img31.imageshack.us/img31/4383/image24xu.jpg

我的练习表上有一个问题是找到r = (a|b)*ab(a|b)*

的补充

我想出了一个解决方案,但我不确定它是否正确。请帮我检查一下,并纠正我的错误。

2 个答案:

答案 0 :(得分:5)

我假设ab是唯一允许的符号。

您的原始表达式匹配包含ab的任何字符串。补码是不包含ab的任何字符串。换句话说,如果有a,则下一个字符必须是另一个a或字符串的结尾。如果发生b,则必须在所有a之前。

这样就得到了结果:

b*a*

我认为你的表达方式与此相同。

答案 1 :(得分:0)

给定的RE表示具有子串ab的语言至少一次 相同的补语是..语言不接受子串ab

因此b * a *是正确答案