ReedenReeden
阅读与排版高亮规则

替换为

用高亮规则把命中的文字换成别的写法、图片或注音,或者直接删掉,同时套上规则的样式。

「替换为」能做什么

高亮规则除了加样式,还能把命中的文字换掉。换出来的内容同样套用这条规则的样式。

常见用法:

  • 「第一百二十三章」写成「第123章」
  • 「[笑]」「[哭]」换成表情图片
  • 外号上方加注音,比如「小辣椒」上方标「Pepper」
  • 「【弹幕】前方高能」只留下「前方高能」,前缀去掉,再套弹幕样式
  • 聊天记录里把「老妈:」做成小字说话人,后面的消息做成气泡

只想清理广告、错字,不需要样式时,用 替换规则 更直接。

在哪里设置

打开规则编辑,切到「替换」页签,「替换为」有三种:

  • 「不替换」:默认,只加样式
  • 「替换成」:在输入框里写替换后的内容
  • 「删除」:命中的文字整个去掉

选「替换成」后,输入框下面有一排按钮帮你插入写法:「分组」「角色」「转换」「图片」「注音」「样式块」,窄屏上收在「插入」里;旁边还有「美化」和「AI 改」。下面的「替换结果」会用预览文字算出替换后的样子;写错时这里显示红字「写法有误」,规则也保存不了。

替换后的文字会当作正文,复制、搜索、听书和导出用的都是替换后的内容。

规则编辑的替换页签:给黛玉加注音「颦儿」

替换生效场景

选了「替换成」或「删除」后,下面多一项「替换生效场景」:

  • 「全部」:阅读和听书都替换
  • 「仅阅读」:看的时候替换,听书念原文
  • 「仅听书」:看到的是原文,听书念替换后的内容

引用命中的文字

写法意思
$0整个命中的文字
$1、$2…正则里第 1、2… 个分组
$<名字>正则里的命名分组 (?<名字>…)
$$一个 $ 字符

分组只有打开「正则」时才有。关键词里写了命名分组,关键词下面会提示「命名分组:…」,点「分组」按钮能直接插入。

示例:去掉弹幕前缀

  • 关键词(正则):【弹幕】(?<msg>[^\n]+)
  • 替换成:$<msg>

正文里的「【弹幕】前方高能!!」显示成「前方高能!!」。

转换

点「转换」,先选「转换哪一部分」(「整个命中」或某个分组),再选一种转换:

转换写法效果
中文数字转阿拉伯数字{1|num}一百二十三 → 123
阿拉伯数字转中文数字{1|cn}123 → 一百二十三
截取前 12 个字{0|head:12}只留第一行的前 12 个字,数字可以改
转成全角{0|full}英文、数字、标点换成全角
转成半角{0|half}全角的英文、数字、标点换成半角
字母转大写{0|upper}abc → ABC
字母转小写{0|lower}ABC → abc

花括号里的第一个是要转换的部分:0 是整个命中,1、2 是分组,命名分组直接写名字(如 {n|num})。几个转换可以接着写,按顺序执行,例如 {1|num|full}。

示例:章号换成阿拉伯数字

  • 关键词(正则):第(?<n>[零〇一二三四五六七八九十百千万两]+)章
  • 替换成:第{n|num}章

「第一百二十三章」显示成「第123章」。

花括号里写的不是上面这些写法时,会原样显示,书里本来就有的花括号不受影响。

角色

关键词用「特殊匹配」里的「角色高亮」(匹配本书角色列表里的所有角色名)时,「替换为」里可以用角色的信息:

  • {roleName}:角色名
  • {roleAvatar}:角色头像的地址,配合图片使用:<img src="{roleAvatar}" alt="{roleName}" size="text">

点「角色」按钮可以直接插入。

插入图片

点「图片」从「我的图库」选一张图,会插入一段:

<img src="图片编号" alt="" size="text">
  • alt:图片代表的文字。复制、搜索、听书时,图片按这段文字算;不写就只是一个占位
  • size:大小。text 和文字一样高(默认),original 按原图尺寸,line 独占一行
  • class:给图片起个名字,在 CSS 里单独调样式,见 高亮规则样式

除了图库里的图,还可以直接写内置素材的名字,比如 <img src="bell" alt="叮" size="text">,也可以写成 src="builtin:bell"。内置素材随 App 一起安装,内置模板里的装饰用的就是它们:

bubble-pink、bubble-white、tag、scroll、torn、banner、note-card、avatar、gem、bell、pin、sakura、boom、quote-left、quote-right、pencil、ornament、flourish、cap-frame、emoji-smile、emoji-cry、emoji-wow、comment-bubble

示例:表情换成图

  • 关键词:[笑]
  • 替换成:<img src="emoji-smile" alt="笑" size="text">

旧版本的 Reeden 不认识这种图片写法,会把它当成普通文字显示。

注音

点「注音」插入 <ruby>$0<rt></rt></ruby>,在 <rt> 和 </rt> 中间写注音:

<ruby>$0<rt>Pepper</rt></ruby>

注音显示在文字上方,不算正文:复制、搜索、听书都只用下面的文字。

注音只支持给命中的原文整体加,也就是 <ruby>$0<rt>…</rt></ruby> 这一种写法。下面的文字换成别的内容时,注音会被丢掉,只留下文字。导出 EPUB 时注音不导出。

样式块

点「样式块」插入 <span class="name"></span>。把一部分内容包起来,起个名字,就能在规则的 CSS 里给它单独设样式。

示例:聊天记录里,说话人小字、消息照常

  • 关键词(正则,打开「多行匹配」):^(?!我[::])(?<who>[^::\n]{1,8})[::](?<msg>.+)$
  • 替换成:<span class="who">$<who></span>$<msg>
  • CSS 里加一段:.who { font-size: 0.75em; color: {mutedColor}; margin-right: 0.4em; }

.名字 { … } 的写法见 高亮规则样式。

和其他规则的先后

  • 「替换为」在简繁转换、替换规则、全文翻译之后执行,关键词匹配的是这些处理之后的文字;替换完才套高亮样式,其他规则的样式匹配的是替换后的文字
  • 几条带「替换为」的规则在同一份文字上一起匹配,不会匹配到别的规则替换出来的内容;命中重叠时只有排在前面的规则替换,后面的在重叠处不替换,样式照常叠加

例子和排列建议见 规则生效顺序。

写法限制

  • 标签只能用 span、img、ruby、rt
  • 不支持 style 属性,样式写在规则的 CSS 里
  • 属性值要加引号;<span>、<ruby> 要有结束标签
  • 要写 <、>、& 这些字符本身时,写成 &lt;、&gt;、&amp;

写错时「替换结果」会提示错在哪个字符,按提示改就行。