Skip to content

渲染后处理词

渲染后处理词在重命名模板渲染完成后执行,用来清理最终输出路径。它不会影响标题识别、TMDB 搜索、季集识别、制作组识别和自定义捕获词,只处理已经生成的最终文件名或路径。

执行位置:

text
识别结果 -> 重命名模板渲染 -> 渲染后处理词 -> 最终目标路径

适合处理:

  • 模板字段为空导致的多余符号。
  • 大小写不统一。
  • 连续点号、连续短横线、连续空格。
  • 最终文件名里不想保留的固定文本。
  • 把渲染出来的某些片段统一成自己喜欢的格式。

基本规则

  • 一行一条规则。
  • # 开头为注释。
  • 支持正则表达式。
  • 默认区分大小写。
  • 忽略大小写请使用 (?i)
  • 替换箭头必须写成 =>,两边都有空格。
  • 只写词语时表示删除匹配内容。
  • 替换完成后,NanShare 会自动清理连续的点号、短横线和空格。

自动清理包括:

text
..  -> .
--  -> -
多个空格 -> 单个空格

删除规则

只写一个词或正则,匹配后会从最终路径中删除。

text
PROPER
REPACK
LIMITED

示例:

text
输入:Movie.2024.PROPER.2160p-GROUP.mkv
规则:PROPER
输出:Movie.2024.2160p-GROUP.mkv

正则删除:

text
(?i)\bPROPER\b
(?i)\bREPACK\b
\[.*?\]
【.*?】

如果只想删除最终文件名中的这些词,而不想影响 TMDB 识别,就应该写在渲染后处理词,而不是自定义识别词。

替换规则

格式:

text
被替换词 => 替换词

示例:

text
BluRay Remux => BluRay.REMUX
(?i)\bremux\b => REMUX
WEB DL => WEB-DL
DDP 5.1 => DDP5.1

大小写统一:

text
(?i)\bweb-dl\b => WEB-DL
(?i)\bwebrip\b => WEBRip
(?i)\bbluray\b => BluRay
(?i)\bremux\b => REMUX

符号统一:

text
WEB DL => WEB-DL
BluRay Remux => BluRay.REMUX
DTS HD MA => DTS-HD MA
DDP 5.1 => DDP5.1

捕获组替换

渲染后处理词使用正则替换,支持捕获组引用。

text
S([0-9])E([0-9]) => S0\1E0\2
第([0-9]+)季 => Season \1
第([0-9]+)集 => E\1

示例:

text
输入:Show.S1E3.WEB-DL.mkv
规则:S([0-9])E([0-9]) => S0\1E0\2
输出:Show.S01E03.WEB-DL.mkv

再如:

text
输入:剧名.第2季.第3集.mkv
规则:
第([0-9]+)季 => Season \1
第([0-9]+)集 => E\1
输出:剧名.Season 2.E3.mkv

如果你是要影响识别到的季集,不要用渲染后处理词;要用 自定义识别词

清理空字段符号

模板里某些字段为空时,可能出现多余符号:

text
Movie.2024...WEB-DL..2160p--GROUP.mkv

可以配置:

text
\.{2,} => .
-{2,} => -
\s{2,} => 
\.- => -
-\. => -

NanShare 已经会自动清理连续点号、短横线和空格,但你仍然可以加更细的规则处理边界情况。

常见组合:

text
\.{2,} => .
-{2,} => -
\s+- => -
-\s+ => -
\.- => -
-\. => -

路径片段处理

渲染后处理词作用于完整渲染结果,可能包含目录和文件名。

例如模板输出:

text
剧名 (2024) {tmdbid-123}/Season 1/剧名.2024.S01E01.WEB DL.2160p.mkv

规则:

text
WEB DL => WEB-DL
Season 1 => Season 01

输出:

text
剧名 (2024) {tmdbid-123}/Season 01/剧名.2024.S01E01.WEB-DL.2160p.mkv

因为它处理完整路径,所以写规则时要小心不要误伤目录名。

和自定义识别词的区别

自定义识别词处理原始标题,会影响识别:

text
第二季 => S02

渲染后处理词处理最终路径,不影响识别:

text
Season 1 => Season 01

举例:

text
原始文件名:庆余年 第二季 E01.mkv

如果希望 NanShare 识别成第二季,应该写自定义识别词:

text
第二季 => S02

如果识别已经正确,只想把最终目录 Season 1 改成 Season 01,写渲染后处理词:

text
Season ([0-9])(/|$) => Season 0\1\2

和自定义捕获词的区别

自定义捕获词用于提取变量:

text
(?i)(IMAX|REMUX) >> editionTag

模板里使用:

jinja
{{ editionTag }}

渲染后处理词用于处理渲染后的结果:

text
IMAX.REMUX => IMAX-REMUX

如果你想“保留某个信息作为模板字段”,用捕获词。如果你只想“最终文件名长什么样”,用渲染后处理词。

完整配置示例

text
# ===== 大小写统一 =====
(?i)\bweb-dl\b => WEB-DL
(?i)\bwebrip\b => WEBRip
(?i)\bbluray\b => BluRay
(?i)\bremux\b => REMUX

# ===== 常见格式统一 =====
WEB DL => WEB-DL
BluRay Remux => BluRay.REMUX
DTS HD MA => DTS-HD MA
DDP 5.1 => DDP5.1

# ===== 删除不想出现在最终文件名里的词 =====
(?i)\bPROPER\b
(?i)\bREPACK\b
(?i)\bLIMITED\b

# ===== 清理符号 =====
\.{2,} => .
-{2,} => -
\s{2,} => 
\.- => -
-\. => -

# ===== 季目录补零 =====
Season ([0-9])(/|$) => Season 0\1\2

输出示例

输入渲染结果:

text
The Last of Us (2023) {tmdbid-100088}/Season 1/The.Last.of.Us.2023.S01E03.web-dl..2160p--NTb.mkv

规则:

text
(?i)\bweb-dl\b => WEB-DL
Season ([0-9])(/|$) => Season 0\1\2
\.{2,} => .
-{2,} => -

输出:

text
The Last of Us (2023) {tmdbid-100088}/Season 01/The.Last.of.Us.2023.S01E03.WEB-DL.2160p-NTb.mkv

校验与排错

后台会对替换左侧正则做编译校验。

错误示例:

text
(?i)\bremux\b => REMUX

这条是正确的。

真正常见的错误是箭头缺少空格:

text
(?i)\bremux\b=>REMUX

正确写法:

text
(?i)\bremux\b => REMUX

另一个常见错误是正则括号没有闭合:

text
Season ([0-9] => Season 0\1

正确:

text
Season ([0-9]) => Season 0\1

FAQ

渲染后处理词会影响 TMDB 识别吗

不会。它只处理模板渲染后的最终路径。

可以删除目录名里的内容吗

可以,因为处理对象是完整渲染结果。但要谨慎,规则会同时作用于目录和文件名。

可以替换成空吗

可以。

text
PROPER =>

也可以直接写:

text
PROPER

两者都是删除。

为什么我的规则没生效

检查:

  1. 是否写在渲染后处理词里,而不是识别词或捕获词。
  2. => 两边是否有空格。
  3. 正则大小写是否匹配,必要时加 (?i)
  4. 规则匹配的是最终渲染路径,不是原始文件名。
  5. 是否被前面的规则已经改掉了文本。

可以用它修复季集识别吗

不建议。季集识别应该在解析前修正,用自定义识别词。渲染后处理词只适合修最终输出样式。

NanShare 文档站仅说明 NanShare 项目的部署、配置与使用。