深色模式
自定义制作组
每行一个正则,合并成一条大正则用于发行组识别,供命名模板与权重洗板的发行组评分使用。
前置条件
- 已在「文件整理 → 词表 → 制作组」编辑
custom_release_groups。 - 每行是一个合法正则;空行与
#注释行会被忽略。 - 制作组识别发生在名称解析之后,使用的是识别词替换后的标题。
详细规则
匹配流程总览
- 读取
custom_release_groups(并合并启用的远端词库),逐行使用,跳过空行与#注释。 - 所有行用
|合并成一条大正则(strings.Join(groups, "|"))。 - 标题侧:把合并正则包进边界断言
(?i)(?<=[-@\[£【&])(?:<合并正则>)(?=[@.\s\]\[】&])做匹配。 - 文件侧:对文件名末尾做一次独立提取,正则为
-([A-Za-z][A-Za-z0-9]*(?:@[A-Za-z][A-Za-z0-9]*)*)$(先剥离扩展名)。 - 把命中结果按
@拆分、去重,最终用@连接为releaseGroup(如HHWEB@CHD)。 - 需要判断「某组是否在列表里」(订阅筛选等场景)时,用
(?i)^(?:<合并正则>)$做整串判定。
合并方式与大小写
- 一行一个正则;合并是简单
|连接,不额外包裹捕获组。 - 匹配默认忽略大小写:代码在合并结果前加了
(?i),无需手写;写了也不会冲突。 - 每行必须能独立编译为正则,保存时会逐行校验。
- 行与行之间互相独立,一条覆盖多个写法的正则(如
CMCT[V]?)可以放心使用。
边界断言逐字符解释
匹配原文(<合并正则> 为所有行用 | 连接后的结果):
text
(?i)(?<=[-@\[£【&])(?:<合并正则>)(?=[@.\s\]\[】&])| 片段 | 作用 |
|---|---|
(?i) | 忽略大小写 |
(?<=[-@\[£【&]) | 前断言:组名之前必须是 -、@、[、£、【、& 之一 |
(?:<合并正则>) | 你的合并列表(每行用 | 连接) |
(?=[@.\s\]\[】&]) | 后断言:组名之后必须是 @、.、空白字符、]、[、】、& 之一 |
要点:
- 前后都是零宽断言,只要求边界字符存在,不会把边界字符吃掉。
\s覆盖空格、制表符等空白;组名后接空格、换行或文件名中段结束都算合法边界。@同时出现在前断言与后断言里,因此HHWEB@CHD这类连写会被拆成两次命中,再合并回HHWEB@CHD。- 组名前面没有允许的分隔符时不会命中。
可命中示例(假设列表里有 HHWEB、CHD):
text
Movie.2024.2160p-HHWEB.mkv → HHWEB
Movie.2024.2160p@HHWEB.mkv → HHWEB
Movie.2024.2160p[HHWEB].mkv → HHWEB
Movie.2024.2160p【HHWEB】.mkv → HHWEB
Joy.of.Life.S02E01.2160p-HHWEB@CHD.mkv → HHWEB@CHD
Movie.2024.2160p-HHWEB&CHD.mkv → HHWEB@CHD不会命中的写法:
text
Movie.HHWEB.2024.mkvHHWEB 前面是 .,不在前断言的字符集合里,因此不会按制作组命中。
命中结果拆分与拼接
- 命中结果可能包含
@(匹配整段跨过@分隔符时),先按@拆开成单个组名。 - 拆开后整体去重:同一个组重复出现只保留一次。
- 最终多个组用
@连接输出:HHWEB@CHD、HHWEB@MTeam。
文件层末尾提取
标题边界匹配之外,文件层面还会对文件名末尾做一次独立提取,用于兜住「列表里没写但文件名末尾带 -Group」的情况。
步骤:
- 取文件名(含扩展名)。
- 先剥离常见视频 / 字幕扩展名。
- 对剩余部分应用末尾提取正则
-([A-Za-z][A-Za-z0-9]*(?:@[A-Za-z][A-Za-z0-9]*)*)$。
正则拆解:
| 片段 | 含义 |
|---|---|
- | 组名前的连字符 |
[A-Za-z][A-Za-z0-9]* | 组名以英文字母开头,后接英文字母或数字 |
(?:@[A-Za-z][A-Za-z0-9]*)* | 允许 @ 连接的多个组,如 HHWEB@CHD |
$ | 锚定到剥离扩展名后的文件名末尾 |
示例:
text
Movie.2024.2160p.WEB-DL.H265-HHWEB.mkv → HHWEB
Movie.2024.2160p.WEB-DL.H265-HHWEB@CHD.mkv → HHWEB@CHD
Movie.2024.2160p.WEB-DL.H265-A1B2.mkv → A1B2扩展名剥离清单
末尾提取前会先剥掉以下扩展名(不区分大小写):
text
.mkv .mp4 .avi .ts .rmvb .mov .flv .m4v .wmv .mpg .mpeg .m2ts .iso .strm .srt .ass .ssa .sup .3gp .asf .tp .f4v因此 xxx-HHWEB.mkv 与 xxx-HHWEB.srt 都能提取到 HHWEB。
排除清单
末尾提取会把以下组名(不区分大小写)排除,避免把编码复合后缀误认成制作组:
| 排除项 | 常见来源 |
|---|---|
dl | WEB-DL |
hd | DTS-HD 等 |
ma | DTS-HD MA |
text
Movie.2024.DTS-HD.MA.mkv以上文件不会把 HD、MA 当成制作组。
整串判定(是否在列表中)
除「边界匹配」外,系统还有一个整串判定口径:
text
(?i)^(?:<合并正则>)$它要求待查字符串从第一个字符到最后一个字符都与合并正则匹配(不是子串包含),且忽略大小写。用于「某个制作组是否属于列表」这类查询场景。
订阅筛选复用
订阅系统的「制作组」筛选项会读取自定义制作组列表。想在订阅里按某个组筛选,建议把它也写进列表:
text
HHWEB
NTb
FLUX
CHD
MTeam这样订阅筛选、文件整理识别与模板渲染的口径保持一致;否则可能出现「订阅筛选里没有这个组、或命中不到」的情况。
默认列表为空
- 出厂
custom_release_groups为空列表(代码常量DEFAULT_RELEASE_GROUPS = []),不存在「内置大列表」。 - 列表非空时,它就是主列表;识别来源是「文件末尾提取 + 本列表」两条路径。
- 想让某个组稳定被识别:把它写进列表(供标题边界匹配与整串判定使用),文件末尾的
-Group则由末尾提取兜底。
正则写法建议
制作组规则本身是正则,一条即可覆盖多个写法:
| 写法 | 覆盖结果 |
|---|---|
CMCT[V]? | CMCT、CMCTV |
WiKi[A-Z]* | WiKi、WiKiHD、WiKiWEB |
CHD(Web|TV)? | CHD、CHDWeb、CHDTV |
MTeam[A-Z]* | MTeam、MTeamHD |
text
CMCT[V]?
WiKi[A-Z]*
HHWEB
CHD(Web|TV)?
MTeam[A-Z]*TIP
匹配本身已忽略大小写,一般不必再写 (?i);含连字符的组名(如 Lilith-Raws)按原样书写即可。
校验与排错对照
保存时会逐行做正则编译校验;括号、方括号不闭合等会直接报错。
text
WiKi( # 校验失败:括号未闭合
WiKi[A-Z]* # 校验通过| 现象 | 原因 | 修正 |
|---|---|---|
| 保存时该行校验失败 | 正则括号、方括号未闭合或转义错误 | 修正该行正则后重试 |
| 组名命中不到 | 前 / 后没有合法的边界字符 | 检查文件名分隔符与边界集合 |
| 末尾提取失效 | 组名不是英文字母开头,或命中排除清单 | 需要时把该组写进配置列表 |
排错顺序:
- 组名前的分隔符是否为
- @ [ 【 & £之一。 - 组名后的边界是否为
@ . 空白 ] 【 &之一(这也是Movie.HHWEB.2024.mkv抓不到的原因)。 - 末尾提取要求组名以英文字母开头;中文组名、纯数字开头的组名要靠文件名里的分隔符 + 配置列表命中。
- 正则是否写得太窄:规则
WiKi匹配不到WiKiHD,需要WiKi[A-Z]*。 - 末尾片段是否落在排除清单(
dl、hd、ma)里。 - 识别到的组名是否被后续的渲染后处理词删掉(用渲染后处理词排查)。
使用流程
- 在制作组文本框按行填写制作组正则。
- 点「立即校验」检查正则是否可编译。
- 点「保存制作组」写盘。
- 识别时命中结果会进入发行组字段,用于命名模板 `` 与权重洗板的发行组评分。
常见问题
为什么每行写一个正则,而不是直接写一组名字?
TIP
词表按行保存,识别时会把所有行合并为一条 | 连接的正则,因此每行都应是一个独立、合法的正则片段。
制作组会影响权重洗板吗?
TIP
会。权重洗板的发行组(releaseGroup)是列表组,命中多个发行组会求和计分;自定义制作组列表决定哪些制作组能被识别出来。
默认有内置制作组吗?
TIP
没有。出厂 custom_release_groups 为空列表(DEFAULT_RELEASE_GROUPS = []),识别靠「文件末尾提取 + 本列表」两条路径;只有识别词内置了 4k => 2160p。
不写制作组能不能识别末尾 -Group?
TIP
可以。文件末尾的 -GroupName 或 -GroupA@GroupB 会自动提取(字母开头、不在排除清单内),即使没有写进列表。
为什么 DTS-HD MA 没被识别成 HD 或 MA?
TIP
末尾提取专门排除了 dl、hd、ma(忽略大小写),避免把编码复合后缀误判成制作组。
制作组支持中文吗?
TIP
配置列表支持正则与中文文本,但文件末尾的自动提取只匹配「英文字母开头 + 字母数字」的组名。中文制作组建议写进自定义列表,并确保文件名里有明确分隔符。
可以把制作组改成别的显示名吗?
TIP
制作组规则只负责识别,不负责替换显示名。要修改最终文件名里的显示效果,用渲染后处理词。