Automata正则表达式 - 连接和扩展之间的差异工会

时间:2015-10-16 16:30:48

标签: regex kleene-star

以下正则表达式有什么区别? (a U b)*和(ab)*

联合和连接之间的区别? 以上哪个正则表达式接受'a'总是在'b'之前的字符串?

请澄清..提前致谢。

1 个答案:

答案 0 :(得分:3)

(ab)*表示序列ab的更多实例为零。例如,

<empty>, ab, abab, ababab

考虑一个*和b *

a*: <empty>, a, aa, aaa, aaa, ...
b*: <empty>, b, bb, bbb, bbb, ...

Concatenation是将一个集合添加到另一个集合。 a * concat b *将连接a *产生的序列与b *产生的序列连接起来,所以:

<empty>, ab, aab, abb, aaaabbbb, bbbbb

Union是组合两个集合并产生不同的结果。因此,a * U b *将是零个或多个实例的正则表达式和零个或多个b实例:

<empty>, a, aa, aaa, aaaa, b, bb, bbb, bbbb