26、RegexFilter:正则表达式匹配的预过滤方法

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值