Epsilon在正则表达式中的作用?

问题描述 投票:0回答:1

我正在上课计算理论,而且我在正则表达式中并没有完全理解ε。例如,我的教科书说下面的RE可以这样简化(U表示联盟操作,字母表是{0,1})

(0Uε)1 * = 01 * U 1 *

不应该只是01 *,因为ε是空字符串?它基本上不是{0}和1 *的串联吗?

此外,ε被认为是字母表中的符号吗?换句话说,如果一种语言允许ε作为一个字符串,那么{ε,0,1}是一个合适的字母还是简单地省略了ε?

automation regular-language computation-theory
1个回答
0
投票

你不能只使用01 *,因为这不允许只包含1的字符串,而只包含0后跟零或更多1的字符串。也就是说,正则表达式(0Uε)1 *允许字符串,如0,1,01,11,011,111,0111 ......,因为你可以选择使用0或省略它,但01 *不允许你省略0,因此包含字符串0,01,011,0111,...,但不包含字符串1,11,111,...

你通常不提ε作为字母表的一部分。

© www.soinside.com 2019 - 2024. All rights reserved.