39 lines
1.6 KiB
Markdown
39 lines
1.6 KiB
Markdown
# 屏蔽规则解析修复计划
|
||
|
||
## 问题分析
|
||
|
||
通过分析代码,我发现了无法处理`/domain.com/`类似规则的问题:
|
||
|
||
1. **当前实现**:
|
||
- 当处理`/domain.com/`这样的规则时,代码会将其编译为正则表达式`domain.com`
|
||
- 然后使用`MatchString(domain)`来检查域名是否匹配该正则表达式
|
||
- 但是,`MatchString`会检查整个字符串是否匹配,而不是检查域名是否包含该模式
|
||
- 例如,对于域名`example.com`,正则表达式`domain.com`不会匹配,因为它只匹配字符串"domain.com"
|
||
|
||
2. **用户期望**:
|
||
- 用户期望`/domain.com/`匹配所有包含"domain.com"的域名,比如`sub.domain.com`
|
||
- 但是当前实现中,它只会匹配精确的字符串"domain.com"
|
||
|
||
## 解决方案
|
||
|
||
### 1. 修改正则表达式规则处理
|
||
|
||
我们需要修改`parseRule`函数中对正则表达式规则的处理,确保`/domain.com/`这样的规则能正确匹配包含该模式的域名。
|
||
|
||
### 2. 优化匹配逻辑
|
||
|
||
我们需要确保正则表达式规则能正确匹配域名,无论是精确匹配还是包含匹配。
|
||
|
||
## 实现步骤
|
||
|
||
1. **修改`parseRule`函数**:
|
||
- 对于以`/`开头和结尾的规则,确保其能正确匹配包含该模式的域名
|
||
- 或者,添加一个选项,允许用户指定匹配模式
|
||
|
||
2. **测试修复效果**:
|
||
- 确保`/domain.com/`规则能匹配`sub.domain.com`等域名
|
||
- 确保其他规则类型仍能正常工作
|
||
|
||
## 预期效果
|
||
|
||
通过以上修复,屏蔽规则解析将能够正确处理`/domain.com/`类似的规则,匹配所有包含该模式的域名,提高用户体验。 |