RegexFilter:正则表达式匹配的预过滤方法
1. 正则表达式打印生成
对于给定的正则表达式,我们将介绍如何找到其所有可能的正则表达式打印,并引入一种算法来选择性地生成满足目标的优质正则表达式打印。
1.1 正则表达式打印
在展开工作之前,先给出一些必要的定义。正则表达式 (r) 是符号集 (\Sigma \cup{\epsilon, |, \cdot, , (, )}) 上的字符串,其递归定义如下:
- 空字符 (\epsilon);
- 字符 (\alpha \in\Sigma);
- ((r_1))、(r_1 \cdot r_2)、(r_1|r_2) 和 (r_1^ ),其中 (r_1) 和 (r_2) 为正则表达式。
它表示字母表 (\Sigma) 上的一组字符串,具体递归定义如下:
| 条件 | 结果 |
| ---- | ---- |
| (r = \epsilon) | (S(r) = {\epsilon}),即空字符串 |
| (r = \alpha (\alpha \in\Sigma)) | (S(r) = {\alpha}),即单个字符的字符串 |
| (r = (r_1)) | (S(r) = S(r_1)) |
| (r = r_1 \cdot r_2) | (S(r) = S(r_1) \cdot S(r_2)),其中 (S(r_1) \cdot S(r_2)) 是字符串 (w) 的集合,满足 (w = w_1w_2),且 (w_1 \in S(r_1)),(w_2 \in S(r_2)) |
| (r
超级会员免费看
订阅专栏 解锁全文
956

被折叠的 条评论
为什么被折叠?



