星期二, 十月 24, 2023

174 clash meta filter 正则表达式 必须出现某节点名, 且不区分大小写. 另外, 不得出现某节点名, 且不区分大小写

因为自己在使用 clash meta 的时候, 有一个需求, 就是必须筛选美国节点, 并排除带有 群组、订阅、通知 字样的节点. 

直接上正则: 

    filter: (?i)^(?!.*(?:群组|直连|官网|群组|通知|套餐|剩余|更新订阅|direct))(?=.*(?:美国|usa)).*$

正则加了i以不区分大小写. 写得像屎山但确实能用. 写在 proxy-groups 中使用, 举例: 

proxy-groups:

  - name: load_balance

    type: load-balance

    use:

      - 1

      #- 2

      - 3

      - 4

    url: https://www.gstatic.com/generate_204

    interval: 300

    filter: (?i)^(?!.*(?:群组|直连|官网|群组|通知|套餐|剩余|更新订阅|direct))(?=.*(?:美国|usa)).*$

    disable-udp: false

    lazy: true

    strategy: consistent-hashing  #round-robin|sticky-sessions


再举例: 

  - name: all_us

    type: url-test

    use:

      - 1

      #- 2

      - 3

      - 4

    url: https://www.gstatic.com/generate_204

    interval: 300

    filter: (?i)^(?!.*(?:群组|直连|官网|群组|通知|套餐|剩余|更新订阅|direct))(?=.*(?:美国|usa)).*$

    disable-udp: false

    tolerance: 0

    lazy: true


用 use + filter + 开lazy 的好处是, 不会对所有节点检测延迟, 减少一些服务器压力, 毕竟这个东西我设置的是每5分钟遍历一次的. 

0 条评论: