网文 TXT 转 EPUB:章节识别为什么会翻车,正则、卷篇、番外的全套修复方案

· 约 6 分钟 📚 TXT 转 EPUB

把网文 TXT 转成 EPUB 时,章节目录的好坏直接决定阅读体验——目录正确就能在 Kindle / Boox 上跳章,目录错乱就只能从头滑到尾。

而章节识别是这类工具最容易翻车的地方。本工具默认正则已经覆盖了网文最常见的 90% 写法,但仍有几类情况会失败。这篇按”哪些会成功 / 哪些会失败 / 失败了怎么修”三段讲清楚。

默认正则覆盖了什么

打开 UI 的”章节匹配正则”框,里面是一长串。拆开看实际覆盖的是 4 大类:

类别模式举例
数字章节第X章/回/节/集第一章、第 123 回、第三十五节
特殊章节序章/序言/楔子/引子/前言/后记/尾声/番外楔子、序章·初见、番外·后日谈
英文章节Chapter/CHAPTER XChapter 5、Chapter XII
卷篇层级第X卷/篇/部卷XVolume/Book/Part X第一卷、卷三、Volume 1

数字格式同时支持

  • 阿拉伯数字:第 1 章第 234 章
  • 汉字数字:第一章第一百二十三章(字符集 零一二三四五六七八九十百千万两
  • 罗马数字:仅在 Chapter/CHAPTER 后生效(Chapter XIIChapter IX

特殊章节后面允许接副标题(30-50 字),所以”楔子·风起于青萍之末”、“番外·林家姐妹的童年”都能识别。

卷与章是两层

  • 工具同时跑两套正则——章节正则 + 卷篇正则
  • 匹配到卷时在目录里新建一层,后续章节挂在该卷下
  • 同一行既匹配卷又匹配章时卷优先——避免”第一章·序章”这类歧义

哪些情况会失败

按出现频率排,5 种典型坏样本:

1. 标题被装饰符号包裹

※※※ 第一章 风起 ※※※
【第一章】风起
═══ 第一章 风起 ═══

默认正则要求 ^[\s ]*第X章...[\s ]*$——只允许前后空格,不允许其它字符。修复:把正则改成允许装饰符:

^[\s ※【═]*第[零一二三四五六七八九十百千万两\d]+[章回节集].{0,50}[\s ※】═]*$

2. 命名超出默认范围

上篇 离别
下篇 重逢
卷之一 山雨欲来
序          ← 单字"序"成行
楔 子        ← 中间有空格

上篇/下篇/序(单字)默认没覆盖。修复:把对应模式加进正则。注意 楔[\s ]*子 在默认正则里已经允许中间有空格——这种坑工具已经处理。

3. 章节行带尾部噪声

第一章 风起    点击查看更多
第一章·风起 [VIP]
第一章 风起 (字数 4500)

后面 30-50 字的”副标题宽容度”会把”点击查看更多”也当成副标题接受——所以仍能识别,但章节标题里会带尾巴。修复:把噪声前的正常副标题部分留作章节标题,需要”裁尾”时改”广告/水印过滤”——丢掉这一类整行不行(章节会消失),只能在转完后用 Calibre 批量改标题。

4. 标题行超过 80 字

第一章 这是一个非常非常长的副标题描述了主角今天发生的所有事情包括起床吃早饭出门遇到一个白衣女孩...

默认行长上限 80 字——超出视为对话框 / 正文而非章节标题。这是为了避免把”她说:‘第一章我爱你‘“这种引号里的字误识别。修复:仅在确认这类长标题确实是章节时调整源数据——比如把超长副标题手动截短。

5. 章节正则全部失效

完全识别不出(章节数 = 1)时工具退化为”整本一章”,不会报错也不会丢内容。这种情况的修复路径见后面”修复实战”。

笔趣阁广告与”本章完”

网文 TXT 几乎都带着源站点的广告。工具默认”广告/水印过滤”覆盖:

类别模式举例
URL^https?:// / ^www\.https://www.biquge.com
章末标记本章完 / 未完待续 / 完结撒花本章完
站点标记笔趣阁 / 起点 / 17K / po18 / 思路客 等 13 个笔趣阁 www.biquge.com
推广话术请记住本站 / 手机版阅读 等 7 类请记住本站永久网址
分隔符─━—-_=* 连续 ≥ 5 次═══════════

没覆盖的:作者打赏语、QQ 群、微信公众号、章末感言。这些个性化字符串得自己加:

^[\s ]*感谢XX的打赏[\s ]*$
^[\s ]*作者QQ群\s*[::]?\s*\d+[\s ]*$
^[\s ]*关注公众号.{0,30}$

注意陷阱:不要写 ^\s*$ 来”去空行”——空行是段落分隔符,去掉后整本书会糊成一坨。

正文前目录页的处理

很多 TXT 在卷首有”目录预览”段:

第一章 风起
第二章 山雨
第三章 暗涌
...(连续几十行)

第一章 风起
(正文内容...)

照搬转 EPUB,目录里会出现两套章节——一套是真章节、一套是目录页里的”假章节”。

工具的 skipFrontTOC 启发式:

  • 触发条件:连续 ≥ 5 个章节匹配 + 中间每节正文 < 50 字
  • 行为:整段判定为目录页丢弃
  • 提示:UI 顶部会显示”已丢弃 N 章作为正文前目录”——可对账核验

误删的情况:作者写极短章节的微小说(每章几十字)会被误判。预览里发现章节数不对时,关掉 skipFrontTOC 重转。

EPUB 目录与识别结果

识别到的章节会双向写入 EPUB 目录:

  • toc.ncx —— EPUB 2 目录(老阅读器走这里)
  • nav.xhtml —— EPUB 3 目录(新阅读器走这里)

有卷层级时两份目录都生成两层结构。没有卷只有章时,目录是单层(不会硬塞个”无卷”父节点)。完全识别不出(单章兜底)时,目录只有一项指向整本。

有卷有章:
  第一卷 风起篇
    ├─ 第一章 ...
    └─ 第二章 ...
  第二卷 山雨篇
    └─ 第三章 ...

只有章:
  第一章 ...
  第二章 ...
  第三章 ...

兜底单章:
  全书

修复实战:3 个典型坏样本

案例 1:默认转出来只有 1 章

症状:拖入 50 万字网文,预览显示”1 章 / 50 万字”。

排查:在 TXT 里搜 第一章,发现实际写法是 [第一章]——带方括号。

修复:把正则改成允许方括号:

^[\s \[【]*第[零一二三四五六七八九十百千万两\d]+[章回节集].{0,50}[\s \]】]*$

结果:预览刷新显示”312 章 / 50 万字”。

案例 2:转出来 6000 章

症状:100 万字小说预览显示”6000+ 章”——明显爆表。

排查:默认正则把”第×百零×章”识别没问题,问题在用户手动加的一条 ^.{0,50}$ 把短行全当成了章节。

修复:删掉那条过度宽松的正则,恢复默认。

结果:章节数回到 280。

案例 3:序章 + 番外 一个都没识别

症状:章节数正确,但”楔子”、“番外·后日谈”都被合并到了相邻章节里。

排查:原文里写法是 ———— 楔 子 ——————前后有装饰横线。默认正则覆盖了”楔子”中间有空格,但前后的横线超出了 ^[\s ]* 的范围。

修复

^[\s ─━—\-]*楔[\s ]*.{0,30}[\s ─━—\-]*$

或者更简单——把同样的装饰处理批量加到默认正则的每个分组前后。

调正则前先做的三件事

步骤操作目的
1在原 TXT 搜一个确认是章节的字符串看真实字符环境
2比对默认正则 7 种命名判断是覆盖问题还是装饰符问题
3关掉 skipFrontTOC 重转看章数排除”被当目录页误删”的可能

做完这三步再动正则,避免改一行漏一行。

工具默认不做的事

  • 不修改正文文字——只识别章节边界,正文一字不改(简繁转换是另一项独立功能,默认关闭)
  • 不批量改章节标题——识别到什么就用什么;想统一格式用 Calibre 或编辑器先处理 TXT
  • 不识别行内章节标题——...上一章结束。 第二章 开始... 这种章节标题不在行首的,识别不到

如果原稿质量很差、章节命名不规则、夹杂大量噪声——先在编辑器里用查找替换粗清一遍再转,比纯靠正则便宜得多。最后转出来的 EPUB 在 Kindle、Boox、Apple Books 上的目录就能完整跳转,单手翻章不再翻烂屏。

❓ 常见问题

我的网文转出来 EPUB 目录只有"整本"一章,怎么回事?

默认正则一个也没匹配上,工具退化为"整本作为单章"——这是兜底逻辑,不会丢内容但目录无法跳转。常见原因:(1) 章节标题前后有大段空行或全角空格,但被作者用了非常规符号(如 ※第一章※【第一章】),默认正则要求行首到行尾纯净;(2) 用了未覆盖的命名(如"上篇 / 下篇"、"楔 子"中间有空格、"Vol.1"、"序"单字成行);(3) 章节标题行本身超过 80 字(默认行长上限,防止误把对话框当章节)。修复路径:用 Ctrl+F 在原 TXT 里搜一个你确认是章节的字符串,看它在什么字符环境里——再把对应模式加进"章节匹配正则"框,所有书本会实时重算。

数字格式有哪些会被识别?罗马数字算吗?

全覆盖。章节序号支持:(1) 阿拉伯数字 第 1 章第 123 章;(2) 汉字数字 第一章第一百二十三章(字符集 零一二三四五六七八九十百千万两);(3) Chapter/CHAPTER 后的阿拉伯 + 罗马数字(Chapter 5Chapter XII)。不支持:日文汉字数字(壹贰叁陆等大写记账数字不在字符集里——但网文极少用)、波斯数字、全角阿拉伯数字"123"(这种较少见但确实会漏;可以把全角先批量替换成半角)。额外细节:章/回/节/集都覆盖,"章节"两字合用(如"第一章节")不识别——这种命名极少见。

默认覆盖了"卷 / 篇 / 部"——是当作章还是当作目录的上一层?

作为目录上一层。工具同时跑两套正则——"章节正则"和"卷篇正则"。匹配到卷时新建一个目录层级,后续章节挂在该卷下;匹配到下一卷时切换。这样导出的 EPUB 目录会是"卷 → 章"两层结构,而不是把卷和章并列拉平。注意细节:(1) 同一行如果既匹配章又匹配卷,卷优先——避免"第一章·第一卷"这种歧义被当成章;(2) 卷名没匹配到时章节会全部挂在顶层,目录是单层;(3) 默认卷正则覆盖 第X卷/篇/部卷XVolume/Book/VOL./Part X——其它命名(如"番外篇"想当一卷处理)要手动加。

"序章 / 楔子 / 番外"这类没有数字编号的,会被识别吗?

。默认正则单独覆盖了:序章、序言、楔子、引子、前言、后记、尾声、番外。每个都允许后面跟最多 30-50 字的副标题(如"序章·命运的齿轮开始转动")。实务细节:(1) 第一章之前的所有内容自动归到"序章"——即便原文里没标"序章"两字(比如作者自序、版权页、声明),这部分不会丢,但目录里会显示成"序章",自己改章节标题时注意;(2) "番外"后面有 50 字宽容度,足够覆盖"番外·林家姐妹的童年"这种长副标题;(3) "尾声"与"后记"是两个独立模式——同一本书两个都有时各自成章。

"笔趣阁"水印、"本章完"、广告行,转出来 EPUB 里还有吗?

默认会清除,但要看广告行长得是不是符合预设模式。默认"广告/水印过滤"覆盖 6 类:(1) 纯 URL https://...www....;(2) 本章完 / 未完待续 / 本章未完 / 完结撒花 / 完结感言;(3) 站点标记 笔趣阁、起点中文、纵横中文、17K小说、逐浪小说、biquge、qidian、po18、顶点小说、思路客、新笔趣、无错小说、乐文小说;(4) 推广话术 请记住本站、手机版阅读、手机阅读地址、更多精彩小说、免费小说阅读、本书最新章节、本站永久网址;(5) 分隔符行 ─━—-_=* 重复 5 次以上;(6) 用户在 UI 里手动加的额外模式。没覆盖的:作者放在每章末的固定打赏语、QQ 群号、微信公众号广告——这些个性化的字符串得自己加一条正则。

正文前面那一大段目录页(章节标题集中列出但没正文),EPUB 里会重复一份吗?

默认会自动跳过。很多网文 TXT 在卷首会有一段"目录预览"——连续 N 行匹配章节模式但几乎没有正文。如果照搬,EPUB 里会出现一段"假章节"和后面的真章节重复。工具的 skipFrontTOC 启发式:连续多个匹配章节模式的行之间正文极少(每节 < 50 字)时整段判定为目录页丢弃。触发条件:(1) 至少 5 个连续命中;(2) 中间每节正文 < 50 字。不触发的情况:(1) 真章节但作者写得极短(每章几十字的微小说)——会被误删,可以在 UI 里关掉 skipFrontTOC;(2) 目录页和正文之间夹了大段作者声明——不连续,工具按章节正常识别。异常时的修复:UI 顶部有"丢弃了 N 章作为目录页"的提示,对不上时可以关掉再转。

📚 打开 TXT 转 EPUB 中文章节自动识别·GBK/UTF-8 编码探测·封面/元数据·简繁转换·EPUB 2/3 双目录兼容·多本批量·本地处理