文章目录
- 设计思路
- 需要处理的节点(变化节点)
- 需要处理的逻辑(支持的配置项)
- 正则库实现分析
- 定义类结构
- 入口函数
- 解析表达式核心逻辑
- 解析`()`
- 解析`[]`
- 解析`.`
- 原子节点解析
- 解析重复量词
- 其他通用函数
- 实现思路
- 常用测试用例
设计思路
需要处理的节点(变化节点)
| 节点 | 意义 | 范围内取值 | 范围内边界值 | 范围外取值 | 范围外边界值 |
|---|
. | 匹配任何单个字符 | 数字、字母、符号、汉字 | - | - | - |
* | 匹配 0 或多个正好在它之前的那个字符 | 1 - ∞ \infty ∞(次) | 0(次) | - | - |
^ | 匹配一行的开始 | “” | - | “any” | - |
$ | 匹配行结束符 | “” | - | “any” | <