【发布时间】:2013-03-16 17:29:44
【问题描述】:
我的练习纸上有一道题,求两个公式的补集
(1)(aa|bb)*
和
(2)(a|b)(aa|bb)(a|b).
在我看来,两者的互补是a* | b*,意思是只有a's 还是只有b's?
【问题讨论】:
-
简而言之:不。例如
aba既不与公式匹配,也不与您的解决方案匹配,因此不能作为补充。
标签: regex complement
我的练习纸上有一道题,求两个公式的补集
(1)(aa|bb)*
和
(2)(a|b)(aa|bb)(a|b).
在我看来,两者的互补是a* | b*,意思是只有a's 还是只有b's?
【问题讨论】:
aba 既不与公式匹配,也不与您的解决方案匹配,因此不能作为补充。
标签: regex complement
您需要通过通常的程序:
我不会给你看结果,因为它是运动,但我会给你看第一个公式(aa|bb)*的DFA:
由此,您可以清楚地看到a* 或b* 不会给出正确的结果。你永远不会进入 Trap 状态(在补充正则表达式中成为终止状态),你可能会进入状态 2a /2b(在补充正则表达式中变为非-终结状态)。
【讨论】:
简单地 (aa+bb)* 将包含示例字符串,例如 null、aa、aaaa、bb、bbbb、aabb、bbaa 等观察可以形成的所有字符串的长度都是偶数,并且 a 和 b 可以是任意顺序,所以补码应该包含所有奇数长度的字符串 ((a+b)(a+b))*(a+b)
【讨论】: