阅读与排版/内容替换
正则替换示例
用常见示例理解正则替换,先小范围测试,再应用到整本书。
使用前提醒
正则替换适合处理“格式有规律,但文字不完全相同”的内容。
它也更容易误伤正文。第一次使用时,建议:
- 先限定到当前书籍或当前章节
- 先保留替换前后的对照
- 检查命中结果
- 确认无误后再扩大范围
删除固定广告行
如果广告行有固定开头,可以匹配整行:
^.*广告关键词.*$替换为空即可隐藏这类行。
如果开启了多行匹配,要特别确认不会把广告行前后的正文一起吃掉。
删除固定网址
匹配常见网址:
https?://\S+适合清理章节中反复出现的网址。替换为空后,建议检查标点和空格是否还自然。
合并多余空行
把连续多个空行压缩成一个空行:
\n{3,}替换为:
不同系统的换行可能略有差异。如果没有命中,可以先尝试只处理当前章节。
拆分章节号和标题
把同一行里的章节号和标题分成两行,例如:
^(第[一二三四五六七八九十百千万\d]+章)\s*(.+)$替换为:
$1
$2这类规则适合标题格式稳定的书。如果标题格式变化很大,建议使用 TXT 分章规则 或自定义章节管理。
使用分组替换
正则里的括号会产生分组。替换内容里可以用 $1、$2 引用匹配到的分组。
例如把“张三:一句话”改成“张三说:一句话”:
^([^::]+)[::](.+)$替换为:
$1说:$2如果结果不符合预期,先检查是否多匹配了冒号前后的正文。
什么时候不要用正则
这些情况不建议一上来就写正则:
- 只改一个固定错字
- 只想临时隐藏一个短句
- 不确定正文里是否有相似句式
- 规则会删除大段内容
- 还没备份重要书籍
能用普通替换解决的问题,优先用普通替换。
Reeden