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