Skip to content

渲染后处理词 ​

对按模板渲染完成的文件名做最后一次替换或删除,并清理多余的分隔符。

渲染后处理替换 / 删除捕获组替换分隔符清理作用于完整路径

前置条件 ​

  • 已在「文件整理 → 词表 → 渲染后处理词」编辑 post_render_words。
  • 规则作用于「模板渲染完成之后」的文件名,不参与识别阶段。
  • 想清楚要改的是文件名还是目录名——本类词表的替换会同时作用于两者。

详细规则 ​

执行时机 ​

text
识别 -> 制作组 / 捕获词 -> 重命名模板渲染 -> 渲染后处理词 -> 输出目标路径
  • 它在模板渲染之后执行,是命名链路的最后一步。
  • 规则按书写顺序逐条串行应用:后一条看到的是前一条处理后的结果。
  • 所有规则执行完后,再做一次统一的符号压缩。

两种写法 ​

写法形式行为
替换正则 => 替换内容把命中内容替换为右侧文本
替换为空正则 =>(行尾箭头,右侧无内容)删除命中内容
裸正则只写正则等价于删除命中内容

示例:

text
WEB DL => WEB-DL
\s*\[.*?\] =>
PROPER

第一行是替换,第二行是替换为空,第三行是裸正则删除。

书写约定 ​

  • => 两侧必须各有一个空格:写成 A=>B 会被判为语法错误,提示「疑似替换词但 => 两边缺少空格」。
  • 行尾的 =>(右侧为空)合法,表示删除。
  • # 开头的行是注释,空行会被忽略。
  • 默认区分大小写;需要忽略大小写时在正则开头写 (?i)。

作用域:完整渲染结果(含目录) ​

本类词表处理的不是单独的文件名,而是模板渲染出来的完整相对路径,因此目录名也在替换范围内:

text
Season 1 => Season 01

会把已经渲染好的目录 Season 1/ 改成 Season 01/。

小心误伤目录名

WEB DL => WEB-DL 这类规则会同时命中目录与文件名。如果只想改文件名部分,请把正则写得更具体(带上扩展名或更长的上下文),或改用捕获词 + 模板来解决。

捕获组替换 ​

渲染后处理词是少数支持捕获组替换的清理类词表,写法与识别词一致:

  • \1–\9 引用第 N 个捕获组。
  • \g<name> 引用命名捕获组。
  • 替换文本里需要输出字面量 $ 时写成 $$。
  • 引擎优先 RE2,含 lookaround 的写法自动回退 regexp2。

常用示例:

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

第一行把 S1E3 变成 S01E03;第四行给目录里的季号补零(Season 1/ → Season 01/)。

收尾自动压缩 ​

所有规则执行完后,NanShare 会自动做一次收尾:

text
\.{2,}  -> .
-{2,}   -> -
\s{2,}  -> (单个空格)

最后再做一次首尾去空格。也就是说:

  • 删除内容后留下的 .. 会变成 .
  • 连续横线会合并为一条
  • 连续空格会合并为一个
  • 整串首尾的空格会被去掉

这一层不需要你手写规则,写 \.{2,} => . 之类的规则属于重复劳动。

常见用途 ​

季号补零 ​

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

中文季集转英文 ​

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

空字段符号清理 ​

模板里某些字段为空时会留下孤立的点或横线:

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

统一来源写法 ​

text
WEB DL => WEB-DL
WEBRip => WEB-DL
HDTV => HDTV

删除不需要的噪声 ​

text
\s*\[.*?\] =>
\s*【.*?】 =>
(?i)\.(sample|trailer)$

统一大小写 ​

text
(?i)bluray => BluRay
(?i)hdr10\+ => HDR10+

与识别词、捕获词的区别 ​

词表作用阶段作用对象是否能改季集识别
自定义识别词名称解析前原始标题能(偏移 / 指定 TMDB)
自定义捕获词名称解析中识别后的标题不能
渲染后处理词模板渲染后完整渲染路径不能

关键区别:前两者在识别阶段动"素材",渲染后处理词在渲染阶段动"成品"。因此:

  • 渲染后处理词不影响 TMDB 匹配、季集判定、分类结果。
  • 渲染后处理词可以用来"修最终目录名",但也因此更容易误伤。

完整配置示例 ​

text
# 修季号
Season ([0-9])(/|$) => Season 0\1\2
第([0-9]+)季 => Season \1
第([0-9]+)集 => E\1

# 来源统一
WEB DL => WEB-DL
WEBRip => WEB-DL

# 清理空字段符号
\.- => -
-\. => -

# 删除成对括号内容与噪声
\s*\[.*?\] =>
\s*【.*?】 =>
(?i)\.(sample|trailer)$

校验与排错 ​

现象原因处理
报「疑似替换词但 => 两边缺少空格」写成了 A=>B改成 A => B
报「被替换词为空」只写了 => 内容补上左侧正则
目录名被误改规则命中了目录部分让正则更具体,或改用捕获词 + 模板
替换后仍有连续的点正则没匹配到用「立即校验」确认语法;收尾压缩只处理连续符号
规则没生效模板没有渲染出该内容先用「预览结果」确认渲染结果里到底有什么
大小写没匹配上默认区分大小写正则开头加 (?i)

使用流程 ​

  1. 在渲染后处理词文本框按行填写规则。
  2. 点「立即校验」检查语法。
  3. 点「保存后处理词」写盘。
  4. 整理时按模板渲染出路径后,再逐条应用这些规则并做分隔符清理。
  5. 用「预览结果」核对最终目录与文件名,确认没有误伤目录。

常见问题 ​

后处理词会影响识别结果吗? ​

TIP

不会。它只作用于渲染后的文件名与目录名;识别阶段的替换请用自定义识别词。

为什么处理后还是有多余的点或横线? ​

TIP

处理完所有规则后会自动把连续的 .、-、空格压缩为一个,若仍有残留,通常是正则没匹配到,可先用「立即校验」确认语法。

=> 两侧必须带空格吗? ​

TIP

是。缺少空格的写法会被判为语法错误,正确格式是 被替换词 => 替换词;只写行尾 => 表示替换为空。

可以修改季号吗? ​

TIP

可以修文件名/目录上的季号写法(例如 Season 1 → Season 01),但不能修正季集识别结果——识别错误请用识别词的偏移或指定 TMDB。

能删除目录名里的内容吗? ​

TIP

能。因为作用域是完整渲染路径,针对目录串写的规则同样生效;但也正因为如此,写规则前先用「预览结果」核对。

收尾压缩规则可以关掉吗? ​

TIP

不需要关。压缩只作用于连续符号,正常文件名不会受影响;如果你确实需要保留连续符号,请用渲染后处理词之外的方式处理。

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