Rename
重命名规则,基于正则替换(regex::replace_all,支持 $1 反向引用)。在 rename.yaml 中定义,被 provider 的 pre_rename / rename 列表与模板 rename 过滤器(rules= kwarg)按键名引用。
规则形状
每条规则是一个二元素列表 [正则, 替换串],对代理名称执行全局替换:
us:
- "(.*)"
- "🇺🇸 $1"
- 正则语法为 Rust
regexcrate:支持\d、(?:...)、命名组(?<name>...)等,不支持回溯(lookahead/lookbehind 不可用)。 - 替换串中
$1/${name}引用捕获组;字面$写$$。
应用位置
| 阶段 | 配置键 | 时机 |
|---|---|---|
| 解析后 | pre_rename | 过滤前改名——先规范名称再筛选 |
| 过滤后 | rename | 过滤后改名——只对保留节点生效 |
两个阶段各自按列表顺序依次应用;应用后检查重复名称,重名报错。
示例
# rename.yaml
# 全体加国旗前缀
us:
- "(.*)"
- "🇺🇸 $1"
# 去掉括号前的 0:"香港 01(2)" → "香港 01 2"
rm_brackets:
- "0(\\d)"
- " $1"
# 房号规范化:"108-204" → "108/204"
room_number:
- "(\\d+)-(\\d+)"
- "$1-$2"
# 删掉倍率后缀
strip_rate:
- "\\s*[xX]\\d+(\\.\\d+)?$"
- ""
# 多条规则组合:先删信息素后加地区前缀
clean_and_tag:
- "剩余.*|到期.*|官网.*"
- ""
注意
- 未定义的规则名被静默忽略(不参与管线);用
thurgio check可发现这类悬空引用。 - 模板内可动态追加应用:
{{ l.proxies | rename(rules="rm_brackets") }}。 - YAML 中写正则时注意转义:
\d在双引号字符串中要写成"\\d"。