自动机正则表达式-串联与并集之间的区别

Jad*_*run 5 regex kleene-star

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

联合与串联之间的区别?上面的哪个正则表达式可以接受其中“ a”始终在“ b”之前的字符串?

请澄清..在此先感谢。

ryu*_*187 5

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

<empty>, ab, abab, ababab
Run Code Online (Sandbox Code Playgroud)

考虑 a* 和 b*

a*: <empty>, a, aa, aaa, aaa, ...
b*: <empty>, b, bb, bbb, bbb, ...
Run Code Online (Sandbox Code Playgroud)

串联是将一组添加到另一组上。a* concat b* 会将 a* 产生的序列与 b* 产生的序列连接起来,所以:

<empty>, ab, aab, abb, aaaabbbb, bbbbb
Run Code Online (Sandbox Code Playgroud)

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

<empty>, a, aa, aaa, aaaa, b, bb, bbb, bbbb
Run Code Online (Sandbox Code Playgroud)