正则表达式
概念
原子语言:Σ上最基本的语言φ、{ε}、{a}, a∈Σ。
语言上运算:连接、闭包、并
构造方法:从原子语言开始,利用语言上的运算逐步组合而
成,其中可使用括号。
正则语言举例
表达式 | 含义 |
---|---|
0+1 | 长度为1的01串 |
(0+1)* | 任意0-1串{ε, 0, 1, 00, 01, 10, 11, …} |
(0+1)*010 | 以010结尾的0-1串 |
(0+1)*11(0+1)* | 包含子串11的0-1串 |
(1+01+001)*(ε+0+00) | 不会有连续三个0的串 |
正则语言和NFA
举例:
通用NFA(GNFA)
- 只有一个接受状态
- 没有射入到初始状态的弧
- 没有从接受状态射出的弧
- 弧上标记采用正则表达式作标记
GNFA状态约简
正则语言
一般来说,语言集合(语言簇)对于某个运算是封闭的,如
果运算结果仍然属于这个簇。
正则语言在连接、并、闭包运算下都是封闭的。