【发布时间】:2012-11-01 14:02:09
【问题描述】:
我对正则表达式感到困惑。如果有 两组 A 和 B 然后
是(AB)* = A*B*?
【问题讨论】:
-
“集合”是指字符类吗?
-
我投票结束这个问题,因为它与help center 中定义的编程无关。可能更适合Computer Science
我对正则表达式感到困惑。如果有 两组 A 和 B 然后
是(AB)* = A*B*?
【问题讨论】:
No, (AB)* is not equals to A*B*
(AB)* means ABABABABAB......AB AB 的序列(任意次数)。A*B* means AAAA.....BBB...... 任意数量的 A 后跟任意数量的 B。 A不能出现在B之后。
交集 - 两者都只包括 { NULL string, AB }
示例:
假设:A = xy 和 B = z
(AB)* = xyzxyz.....xyz
A*B* = xyxyxyxy....zzzz....z
交集 - 两者都只包括 { NULL string, xyz}。
示例:
假设 -
A = {a, b},
B = {c, d}
那么,
(AB)* = ((a + b)(c + d))* , Its language
L = { ac, ab, acbd, acac, .....}
注意:此语言中的所有字符串都是偶数长度!
和
A*B* = (a + b)* (c + d)* , Its language
L = { a, b, c, d, ac, ad, bc, bd, acbd, addb,.........}
注意:还包含奇数长度的字符串。
【讨论】:
A = ab B = c 示例,但它令人困惑。为了清楚起见,我建议使用A = xy B = z。
A 和B 时ab 会令人困惑。 A = a B = bc 也可以。无论如何,你的一个赞成票来自我。
(AB)* = A*B* ?
没有。首先是语言
{void, ab, abab, ababab, ...}
第二个是语言
{void, a, b, aa, ab, bb, aaa, ...}
【讨论】:
ba。