Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Rename

重命名规则,基于正则替换regex::replace_all,支持 $1 反向引用)。在 rename.yaml 中定义,被 provider 的 pre_rename / rename 列表与模板 rename 过滤器(rules= kwarg)按键名引用。

规则形状

每条规则是一个二元素列表 [正则, 替换串],对代理名称执行全局替换:

us:
  - "(.*)"
  - "🇺🇸 $1"
  • 正则语法为 Rust regex crate:支持 \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"