CClash 中文社区选择客户端 ↗
首页/博客
操作教程

Clash 策略组按名称筛选节点怎样准备样例

Clash 策略组按名称筛选节点怎样准备样例。了解适用条件、操作步骤与常见问题的排查方法。

编辑部 · 更新 2026-10-04

样例要同时覆盖应留下和应丢掉的名字

按名称筛选节点前,先准备一份名称样例,再写表达式。filter 用于筛选满足关键词或正则表达式的节点,exclude-filter 用于排除满足关键词或正则表达式的节点,二者都可以使用反引号区分多个正则表达式。文档示例把 filter 写成同时匹配港、hk、hongkong、hong kong,并把 exclude-filter 写成美或日。因此样例至少要包含:你希望留下的名字、你希望丢掉的名字、仅大小写不同的名字、带空格与不带空格的英文写法。

适用条件是:该策略组会通过代理集合或「引入所有出站代理」得到节点。原因是 filter 仅作用于引入代理集合以及引入所有出站代理。若组只在 proxies 里手工罗列出站或其他策略组,既没有 use,也没有打开 include-all 或 include-all-proxies,名称样例无法按筛选字段生效。判断依据是配置中是否出现 use、include-all、include-all-proxies 或 include-all-providers。后三者会按名称排序引入,这与按名称筛选衔接,但表达式仍然只在文档给定的作用范围内工作。

按引入范围准备样例而不是按地区想象

具体操作分成抄名单和对照字段两步。

抄名单时,把即将出现的节点名原样记下,不要先改成统一地名。同一批里若同时有「香港」「HK」「hongkong」「Hong Kong」,它们都要进入样例,因为示例使用了 (?i) 以及多种写法并列。再准备明显不应进入该组的名字,例如含「美」或「日」的名称,专门对照 exclude-filter。若还计划使用 exclude-type,另列节点类型,不要再混进名称样例:该字段不支持正则表达式,通过 | 分割,根据节点类型排除,仅排除引入出站代理,无视大小写。把「名字里碰巧出现 Http 字样」和「节点类型是 Http」分成两类样例,才能判断表达式写在了正确字段。

对照字段时,确认组如何引入节点。use 引入代理集合;include-all 引入所有出站代理以及代理集合;include-all-proxies 只引入出站代理;include-all-providers 引入所有代理集合,并使原来的引入代理集合写法失效。名称筛选发生在这些引入之后。样例中的名字必须是引入结果里真实存在的字符串,否则表达式写得再完整也不会出现该节点。proxies 里直接写出的其他策略组名不是筛选对象,不要放进节点名称样例。

可把对照写成如下结构,便于以后增删别名:

filter: '(?i)港|hk|hongkong|hong kong'
exclude-filter: '美|日'
exclude-type: 'Shadowsocks|Http'

用样例判断命中以及失败后的调整

判断依据是字符串是否满足关键词或正则,而不是节点属于哪一地区。对每一条样例问两问:它是否满足 filter;它是否满足 exclude-filter。只有前者为是且后者为否时,该名字才应留在组内。若同时配置了 exclude-type,再对「引入出站代理」得到的节点问第三问:类型是否落在排除列表中。三项都核对完,才能说样例已经准备齐。

若样例显示该留下的名字没有留下,下一步先检查筛选是否根本未作用:组是否缺少 use 或各类 include-all。然后检查是否需要用反引号拼接多条正则,以及是否要用 (?i) 覆盖大小写。再检查 exclude-filter 是否把该名字排除;示例中的「美|日」会误伤名称中碰巧含这些字的节点。若样例显示不该出现的类型仍在,检查 exclude-type 是否按 | 分割,并确认这些节点来自引入出站代理。不要把健康检查地址、间隔、超时或失败次数当成筛选失败的原因,那些字段不负责按名称决定成员。样例稳定后,再把表达式写进对应策略组。

https://wiki.metacubex.one/config/proxy-groups/