# 解析器的作用与详解

## 介绍

[资源解析器](https://github.com/KOP-XIAO/QuantumultX)，是对引用的资源文件内容（远程 or 资源片段），进行 解析/转换/修改，变成 Quantumult X 支持的内容，可用在 Quantumult X 的 三个主要模块：

1. 节点
2. 分流
3. 重写

## 添加方式

要使用资源解析器，需要先添加它，添加的方式：

```
// 在 QuantumultX 配置文件中 [general] 字段下，添加

resource_parser_url = https://raw.githubusercontent.com/KOP-XIAO/QuantumultX/master/Scripts/resource-parser.js

//如提示"没有自定义解析器"，请长按右下角图标后点击左侧刷新按钮，
//更新资源，后台退出 app，直到出现解析器说明
```

<figure><img src="https://2561386001-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAEWhRirZZwQJairpE2Z5%2Fuploads%2F3DTzDVVdLqZt3s0kveRP%2Fsnagit048-rp.png?alt=media&#x26;token=29e4db8b-528e-4caa-9d2e-114d94d1f2f9" alt=""><figcaption><p>添加的位置</p></figcaption></figure>

{% hint style="warning" %}
配置文件里面**仅能添加一个**资源解析器，请勿重复添加。
{% endhint %}

## 使用方法

1、在 ⟦引用链接⟧ 后加 "#" 并添加参数（如有）, 不同参数用 "&" 连接&#x20;

例如： "你的订阅连接#emoji=1\&tfo=1\&in=香港+台湾"&#x20;

⚠️本地资源片段引用, 请将参数如 "#in=xxx\&out=yyy" 填入资源片段的第 ① 行&#x20;

⚠️支持中文, "操作" 以下特殊字符时请先替换(URL-Encode)&#x20;

&#x20;`"+"⇒"%2B", 空格⇒"%20", "@"⇒"%40", "&"⇒"%26", "."⇒".", ","⇒"%2C"`

2、打开资源解析器开关

## 参数说明

### 主要功能:&#x20;

1. 将其它格式的⟦服务器订阅⟧解析成 𝐐𝐮𝐚𝐧𝐭𝐮𝐦𝐮𝐥𝐭 𝐗 格式
   * 支持 𝐕2𝐫𝐚𝐲𝐍/𝗦𝗦(𝗥/𝗗)/𝗛𝗧𝗧𝗣(𝗦)/𝗧𝗿𝗼𝗷𝗮𝗻/𝗤𝘂𝗮𝗻𝘁𝘂𝗺𝘂𝗹𝘁(𝗫)/𝗦𝘂𝗿𝗴𝗲/𝐂𝐥𝐚𝐬𝐡/𝐒𝐡𝐚𝐝𝐨𝐰𝐫𝐨𝐜𝐤𝐞𝐭/𝐋𝐨𝐨𝐧 格式
   * 提供对转换过程中的可选个性化参数(筛选、重命名 等)
2. r𝗲𝘄𝗿𝗶𝘁𝗲(重写) & 𝗳𝗶𝗹𝘁𝗲𝗿(分流) 的 转换 & 筛选
   * 用于禁用/修改远程引用中某(几)项 𝗿𝗲𝘄𝗿𝗶𝘁𝗲/𝗵𝗼𝘀𝘁𝗻𝗮𝗺𝗲/𝗳𝗶𝗹𝘁𝗲𝗿
   * S𝐮𝐫𝐠𝐞/𝐂𝐥𝐚𝐬𝐡 类型规则 𝗹𝗶𝘀𝘁 与 模块 𝐦𝐨𝐝𝐮𝐥𝐞 的解析使用

***

1. 在 **⟦订阅链接⟧** 后加 "#" 使用, 不同参数用 "&" 连接

   * 例如：你的订阅连接#emoji=1\&tfo=1\&in=香港+台湾"&#x20;
   * 本地资源片段引用, 请将参数如 "#in=xxx\&out=yyy" 填入资源片段的第一行&#x20;
   * 支持中文, "操作" 以下特殊字符时请先替换(URL-Encode)&#x20;

   `"+"⇒"%2B", 空格⇒"%20", "@"⇒"%40", "&"⇒"%26", "."⇒".", ","⇒"%2C"`
2. **⟦𝐬𝐞𝐫𝐯𝐞𝐫 节点⟧** ➠ 参数说明:&#x20;
   1. **`emoji=1`**(国行设备用2)/-1, 添加/删除节点名内地区旗帜;&#x20;
   2. **`udp=1/-1`**, **`tfo=1/-1,`** 分别强制开启(关闭) 𝐮𝐝𝐩-𝐫𝐞𝐥𝐚𝐲/𝐟𝐚𝐬𝐭-𝐨𝐩𝐞𝐧;
   3. **`uot=1`**, 开启 udp-over-tcp=true选项（仅限SS(R)）
   4. **`cert=1/-1`**, 分别开启/关闭 𝐭𝐥𝐬 证书验证(默认关闭);
   5. **`csha`**/**`psha`**, tls-cert-sha256 以及 tls-pubkey-sha256 参数&#x20;
   6. **`in`**, **`out`**, **`regex`**, **`regout`** 分别为 保留、删除、正则保留、正则删除 节点;
      1. ⚠️ `in, out 中多参数(逻辑"或")用 "+", 逻辑"与"用 "." 表示;`
      2. ⚠️ `in/out 仅对节点名匹配生效`
      3. ⚠️ `regex/regout 对节点的完整信息进行匹配(类型、端口、加密等);`
      4. ⚠️ `示例: "in=香港.0\.2倍率+台湾&out=BGP&regex=iplc" 意思是保留香港0.2倍率和台湾节点，删掉带BGP的节点保留带iplc的节点。`
   7. **rename** 重命名, "旧名@新名", "前缀@", "@后缀", 用 "+" 连接多个参数;
      1. 删除字段: "字段1.字段2☠️", 想删除 "." 时用 "\\." 替代
      2. 示范: "rename=香港@𝐇𝐊+\[𝐒𝐒]@+@\[1𝐗]+流量.0\\.2☠️" 将节点中"香港"重命名为"HK"，在节点名字前加上"\[𝐒𝐒]"后面加上"\[1𝐗]"，去掉带有"流量0.2"的字段
      3. 默认 emoji 先生效, 如想调换顺序, 请用 rrname 参数&#x20;
   8. **`replace`** 正则替换节点中字段, 可用于重命名/更改加密方式等
      1. `replace=regex1@𝘀𝘁𝗿1+regex2@𝘀𝘁𝗿2`&#x20;
   9. 占位符，可用于 rename/replace 等操作
      1. **`$type0/1/2/3/4/5/6/7`** 占位符，将节点类型(ss/ssr/vmess 等)作为可操作参数，改变输出节点协议类型字体格式，如：**`rename=@|$type2`**；样式分别为 "𝐬𝐬","𝐒𝐒","🅢🅢","🆂🆂","ⓢⓢ","🅂🅂","𝕊𝕊","ˢˢ"
      2. **`$index0/1/2/3/4/5/6/7/8`** 占位符，将节点的序号作为可操作参数，如：**`rename=@「$index1」`** ，样式分别为 1\①\❶\⓵\𝟙\¹\₁\𝟏\𝟷
      3. **`$emoji1/2`** 占位符, 将emoji(🇭🇰 等)作为可操作参数，**`rename=@「$emoji1」`**
      4. **`tag`** 占位符，将订阅的 tag 作为可操作参数，可接数字以单独给 tag 添加字母/数字，**`rename=@「$tag34」`**, 样式同下边的 ptn/npt&#x20;
   10. **`ptn=1-8`**, 将节点名英文替换成样式 ⇒ 🅰/🄰/𝐀/𝗮/𝔸/𝕒/ᵃ/ᴬ&#x20;
   11. **`npt=1-8`**, 将节点名数字替换成样式 ⇒ ①\❶\⓵\𝟙\¹\₁\𝟏\𝟷&#x20;
   12. **`delreg`**, 利用正则表达式来删除 "节点名" 中的字段(⚠️ 慎用)&#x20;
   13. **`ahead=-1`**, 关闭 Vmess 的 AEAD 参数
   14. **`host=xxx`** , 修改 host 参数（如有）
   15. **`checkurl=xxx`** , 指定`server_check_url` 参数&#x20;
   16. **`sort=1/-1/x/`**&#x53C2;数规则, 按节点名 正/逆/随机/参数规则 排序
       1. 参数规则是正则表达式或简单关键词, 用"<" 或 ">" 连接
       2. sort=🇭🇰>🇸🇬>🇯🇵>🇺🇸 , 靠前排序
       3. sort=IEPL\<IPLC\<BGP , 靠后排序&#x20;
   17. **`info=1`**, 开启通知提示机场流量信息(如有提供);&#x20;
   18. **`del=1`**, 有重名节点时用此参数删除重复节点(默认改名保留)&#x20;
   19. **`flow`**=2022-06-02:1000:54, 订阅到期时间:总流量:已用流量&#x20;
   20. ⟦进阶参数⟧: 𝘀𝗳𝗶𝗹𝘁𝗲𝗿/𝘀𝗿𝗲𝗻𝗮𝗺𝗲, 传入一段 base64 编码的脚本, 可用于更为复杂的\[过滤/重命名] 需求
       1. &#x20; 说明:[ https://github.com/KOP-XIAO/QuantumultX/pull/9](https://github.com/KOP-XIAO/QuantumultX/pull/9)
3. **𝐫𝐞𝐰𝐫𝐢𝐭𝐞 重写⟧/⟦𝐟𝐢𝐥𝐭𝐞𝐫 分流⟧** ➠ 参数说明:&#x20;
   1. **`in`**, **`out,`** 根据关键词 保留/禁用 相关分流、重写规则;&#x20;
   2. **`inhn`**, **`outhn`**, “保留/删除”主机名(𝒉𝒐𝒔𝒕𝒏𝒂𝒎𝒆); 示范: 禁用 "淘宝比价" 及 "weibo" 的 js 同主机名 `𝐡𝐭𝐭𝐩𝐬://𝐦𝐲𝐥𝐢𝐬𝐭#out=tb_price.js+wb_ad.js&outhn=weibo`
   3. **`regex`**/**`regout`**, 正则保留/删除, 请自行折腾正则表达式; 可与 **`in(hn)`**/**`out(hn)`** 一起使用，**`in(hn)`**/**`out(hn)`** 会优先执行; 对 𝒉𝒐𝒔𝒕𝒏𝒂𝒎𝒆 & 𝐫𝐞𝐰𝐫𝐢𝐭𝐞/𝐟𝐢𝐥𝐭𝐞𝐫 同时生效(⚠️ 慎用)&#x20;
   4. **`policy`** 参数, 用于直接指定策略组，或为 𝐒𝐮𝐫𝐠𝐞 类型 𝗿𝘂𝗹𝗲-𝘀𝗲𝘁 生成策略组(默认"𝐒𝐡𝐚𝐰𝐧"策略组);&#x20;
   5. **`pset=regex1@policy1+regex2@policy2`**, 为同一分流规则中不同关键词(允许正则表达式)指定不同策略组;&#x20;
   6. **`relace`** 参数, 正则替换 𝐟𝐢𝐥𝐭𝐞𝐫/𝐫𝐞𝐰𝐫𝐢𝐭𝐞 内容, **`regex@newregex`**;&#x20;
      1. 例：将淘宝比价中脚本替换成 lite 版本, tiktok 中 JP 换成 KR
      2. `replace=(price)(.*)@$1_lite$2+jp@kr`&#x20;
   7. **`dst=rewrite/filter`**，分别为将 𝐦𝐨𝐝𝐮𝐥𝐞&𝗿𝘂𝗹𝗲-𝘀𝗲𝘁 转换成 重写/分流;&#x20;
      1. 默认将 𝐦𝐨𝐝𝐮𝐥𝐞 转换到重写, 𝗿𝘂𝗹𝗲-𝘀𝗲𝘁 转成分流
      2. 把 𝗿𝘂𝗹𝗲-𝘀𝗲𝘁 中 url-regex 转成重写时, 必须要加 dst=rewrite;&#x20;
      3. 把 𝐦𝐨𝐝𝐮𝐥𝐞 中的分流规则转换时, 必须要加 dst=filter
   8. **`cdn=1`**, 将 github 脚本的地址转换成免翻墙cdn.jsdelivr.net
   9. **`fcr=1/2/3`**, 为分流规则添加 `force-cellular`/`multi-interface`/`multi-interface-balance` 参数，强制移动数据/混合数据/负载均衡;
   10. **`via`**=接口, 为分流规则添加 via-interface 参数, 0 表示 via-interface=%TUN% ;
   11. **`relay`**=目标策略名, 批量将节点订阅转换为ip/host规则，用于实现代理链;
4. **其它参数**
   1. 通知参数：**`ntf=0/1,`** 用于 关闭/打开 资源解析器的提示通知；
      1. &#x20;𝗿𝗲𝘄𝗿𝗶𝘁𝗲/𝗳𝗶𝗹𝘁𝗲𝗿 默认“开启”通知提示, 以防规则误删除&#x20;
      2. 𝘀𝗲𝗿𝘃𝗲𝗿 资源解析则默认”关闭“通知提示
   2. 类型参数： **`type=domain-set/rule/module/list/nodes`**&#x20;
      * 当解析器未能正确识别类型时, 可尝试使用此参数强制指定&#x20;
   3. 隐藏参数 **`hide=0,`** 禁用筛除的分流/重写，默认方式为删除

下面将分 3 个部分，对解析器的具体操作及使用，做出 说明&示范

{% tabs %}
{% tab title="节点解析" %}

## [节点解析](https://qx.atlucky.me/shi-yong-fang-fa/jie-xi-qi-de-zuo-yong-yu-xiang-jie/jie-dian-jie-xi)

{% endtab %}

{% tab title="分流&重写解析" %}

## [分流&重写解析](https://qx.atlucky.me/shi-yong-fang-fa/jie-xi-qi-de-zuo-yong-yu-xiang-jie/fen-liu-zhong-xie-jie-xi)

{% endtab %}

{% tab title="其它参数" %}

## [其它参数](https://qx.atlucky.me/shi-yong-fang-fa/jie-xi-qi-de-zuo-yong-yu-xiang-jie/qi-ta-can-shu)

{% endtab %}
{% endtabs %}

***
