1:正则表达式
1.1:使用正则表达式描述模式
- 语言:一个字符串的集合
- 模式:一个语言的详细说明
连接操作
当我们写出AB时,就指定了一种语言{AB}。它含有一个由两个字符组成的字符串,由A,B连接而成
或操作
用“|”这个操作实现或操作。例如,A|B指定的语言时{A,B}。连接操作的优先级高于或操作。
闭包操作
闭包操作将模式的部分重复任意的次数。
我们将“*”标记再要重复的模式之后,表示这部分可以被重复任意多次(包括0次)
闭包操作的优先级高于连接操作。
例如:AB*表示一个A和0个或多个B的字符组成的字符串。
空字符串可以用&来表示5
括号
使用括号来改变默认的优先级顺序。
例如:(AB)*表示0个或者多个AB连接而成的字符串。
1.2:缩略写法-扩展
字符集描述
名称 | 记法 | 作用 | 示例 |
---|---|---|---|
通配符 | . | 匹配任意一个字符 | A.B |
指定集合 | 包含在[]中的字符 | 匹配[]中字符的任意一个 | [ABCD] |
范围集合 | 包含在[]中由-分割 | 匹配这个范围中的一个 | [A-B] |
补集 | 包含在[]中,首字母为^ | 匹配非[]中的字符 | [^ABC] |
闭包的简写-扩展
选项 | 记法 |
---|---|
至少重复一次 | + |
重复0次或一次 | ? |
重复指定次数 | {}中指定次数 |
重复指定范围i的次数 | {}中指定范围 |
转移序列
“",".","|","(“这些要在前面加一个”"。
1.3:非确定有限状态自动机(NFA)
P519
-
匹配转换
-
空转换
-
每次匹配后的可达状态集合,字符串全部匹配完后如果集合中有接收状态就表时匹配成功