- 自动机理论教程
- 自动机理论 - 首页
- 自动机理论 - 入门
- 自动机理论 - 历史
- 自动机理论 - 应用
- 自动机理论术语
- 自动机中字符串的基础知识
- 自动机的集合论
- 语言和文法
- 计算理论中的文法
- 由文法生成的语言
- 乔姆斯基文法分类
- 有限自动机
- 确定性有限自动机 (DFA)
- 非确定性有限自动机 (NFA)
- 从 NFA 到 DFA 的转换
- DFA 的最小化
- 穆尔机与米利机
- DFA 的补集
- 正则表达式
- 自动机中的正则表达式
- 自动机中的 Arden 定理
- 将正则表达式转换为有限自动机
- 正则文法的泵引理
- 计算理论中的正则集
- 上下文无关文法
- 上下文无关文法 (CFG)
- 上下文无关文法中的二义性
- 上下文无关语言的封闭性
- 简化上下文无关文法
- 乔姆斯基范式 (CNF)
- 格雷巴赫范式 (GNF)
- 上下文无关文法的泵引理
- 下推自动机
- 下推自动机 (PDA)
- 下推自动机的接受
- 从 CFG 构造 PDA
- 下推自动机和语法分析
- 图灵机
- 图灵机 (TM) 基础
- 图灵机接受的语言
- 多磁带图灵机
- 多轨迹图灵机
- 非确定性图灵机
- 半无限带图灵机
- 线性界自动机 (LBA)
- 可计算性和不可判定性
- 图灵语言的可判定性
- 不可判定语言
- 图灵机停机问题
- 计算理论中的 Rice 定理
- Post 对应问题 (PCP)
- 自动机理论资源
- 自动机理论 - 快速指南
- 自动机理论 - 资源
- 自动机理论 - 讨论
正则表达式
正则表达式可以递归地定义如下:
ε 是一个正则表达式,表示包含空字符串的语言。(L (ε) = {ε})
φ 是一个正则表达式,表示空语言。(L (φ) = { })
x 是一个正则表达式,其中 L = {x}
如果X是一个表示语言L(X)的正则表达式,并且Y是一个表示语言L(Y)的正则表达式,则
X + Y 是一个对应于语言L(X) ∪ L(Y)的正则表达式,其中L(X+Y) = L(X) ∪ L(Y)。
X . Y 是一个对应于语言L(X) . L(Y)的正则表达式,其中L(X.Y) = L(X) . L(Y)
R* 是一个对应于语言L(R*)的正则表达式,其中L(R*) = (L(R))*
如果我们从 1 到 5 多次应用任何规则,它们都是正则表达式。
一些正则表达式示例
正则表达式 | 正则集 |
---|---|
(0 + 10*) | L = { 0, 1, 10, 100, 1000, 10000, … } |
(0*10*) | L = {1, 01, 10, 010, 0010, …} |
(0 + ε)(1 + ε) | L = {ε, 0, 1, 01} |
(a+b)* | 任意长度的 a 和 b 字符串的集合,包括空字符串。所以 L = { ε, a, b, aa , ab , bb , ba, aaa…….} |
(a+b)*abb | 以字符串 abb 结尾的 a 和 b 字符串的集合。所以 L = {abb, aabb, babb, aaabb, ababb, …………..} |
(11)* | 包含偶数个 1 的字符串集合,包括空字符串,所以 L= {ε, 11, 1111, 111111, ……….} |
(aa)*(bb)*b | 由偶数个 a 后跟奇数个 b 组成的字符串集合,所以 L = {b, aab, aabbb, aabbbbb, aaaab, aaaabbb, …………..} |
(aa + ab + ba + bb)* | 偶数长度的 a 和 b 字符串可以通过连接 aa、ab、ba 和 bb 的任意组合(包括空字符串)获得,所以 L = {aa, ab, ba, bb, aaab, aaba, …………..} |
广告