自定义标签
用「期望文本」自动生成正则,写自己的标签格式
如果 预设标签 不够用,你可以自己发明标签——用任意名字的 <标签> 包裹 AI 输出,然后在「正则美化」里告诉系统遇到这个标签转换成什么 HTML。
你不需要懂正则表达式。粘贴一段「期望文本」样本,系统会自动识别格式并生成正则;你只需要写要展示的 HTML 替换内容。
整体流程
- 想好你希望 AI 用什么标签输出——比如
<角色状态>...</角色状态> - 在游戏设定里告诉 AI 按这个格式输出对应内容
- 创作台 → 正则美化 → 添加规则,在面板里:
- 粘贴一段示例到「期望文本」 → 自动生成正则
- 看下方「捕获组」列表,找到每个变量对应的
$1、$2... - 写「HTML 替换内容」,用
$1$2引用变量
- 保存。AI 之后输出该格式时,会自动被替换成你写的 HTML
支持的期望文本形态
系统会自动识别你粘贴的样本属于哪种形态,每种生成的正则不同:
| 形态 | 示例 | 生成 |
|---|---|---|
| 嵌套标签 | <weibo><hot1>...</hot1><hot2>...</hot2></weibo> | 每个直接子标签 → 一个捕获组 |
| 单标签 | <narration>月光洒落...</narration> | 内容作为单个捕获组 $1 |
| 符号包裹 | ^旁白^、*强调*、~删除~、"对话"、'引用' | 同符号之间内容 → $1 |
| 配对符号 | 「角色」、(内容)、【提示】、“…” | 配对符号之间内容 → $1 |
| 纯文本 | Char名称妮妮、某某角色 | 整段文字字面匹配 → $1 |
推荐使用「嵌套标签」格式——AI 容易稳定输出,结构清晰,可以有多个独立变量。
各种期望文本写法示例
下面是常见 RP 场景下不同形态的写法示例,可以直接复制到「期望文本」框作为起点。
A. 嵌套标签:角色状态面板
<角色状态>
<名称>妮妮</名称>
<好感度>85</好感度>
<心情>开心</心情>
<心理活动>窗外的阳光很好,今天应该会是不错的一天吧</心理活动>
</角色状态>匹配:$1=名称 $2=好感度 $3=心情 $4=心理活动,4 个独立变量。
B. 嵌套标签:游戏 UI 通知
<通知>
<类型>成就解锁</类型>
<标题>初次见面</标题>
<描述>与新角色完成第一次对话</描述>
</通知>适合做"成就弹窗""任务完成"之类的视觉反馈。
C. 嵌套标签:聊天截图模拟(带嵌套重复)
<聊天截图>
<平台>微信</平台>
<时间>14:23</时间>
<消息列表>
<消息><发送者>张三</发送者><内容>你好啊</内容></消息>
<消息><发送者>me</发送者><内容>在的</内容></消息>
</消息列表>
</聊天截图>粘贴后系统会自动检测到 <消息列表> 内有 2 个 <消息> 是重复结构,提示拆分为子规则——点一下"拆分为子规则",子规则自动建好。
D. 嵌套标签:物品/装备卡
<物品>
<名称>旧式怀表</名称>
<稀有度>稀有</稀有度>
<描述>表盘已经泛黄,但仍能准确报时</描述>
<效果>+5 智力</效果>
</物品>E. 嵌套标签:场景信息条
<场景>
<地点>咖啡馆 · 临窗位</地点>
<时间>下午 3:47</时间>
<天气>晴</天气>
</场景>F. 单标签:作者旁白
<旁白>她推开门,咖啡香气扑面而来</旁白>整段内容作为 $1,适合不需要拆分多个字段的场景。
G. 单标签:系统提示
<系统>检测到玩家进入新区域:图书馆</系统>H. 符号包裹:行内强调
*这是被强调的文字*或者用其它符号:
~删除的内容~
^旁白文字^
|关键词|AI 输出 *xxx* 时被匹配,$1=xxx,可以渲染成加粗、高亮、波浪线之类的样式。
注意:符号包裹要求"内部不能再出现该符号"。自动识别时,如果系统发现样本内部含有相同符号(如 *纯文本 *嵌套* 失败*),会拒绝识别为符号包裹,样本退化为「纯文本」字面匹配——不会生成坏正则。只有当你手动把「正则类型」强制为「符号」时,才可能生成停在第一个 * 处关闭的坏正则。这种场景请改用嵌套标签。
I. 配对符号:角色对话引号
「这是我说的话」中文常用配对:「」、『』、()、【】、《》、〈〉和弯引号 “”、‘’;英文:()、[]、{}。
适合做角色台词、提示弹窗等。
ASCII 直引号 "…"、'…' 不属于配对符号——它们会被识别为「符号包裹」(同符号),功能结果相同。
J. 纯文本:固定角色名高亮
妮妮所有出现"妮妮"的文字都会被匹配上($1 就是这两个字),可以包成专属颜色的 span:
<span class="char-name-nini">$1</span>适合给主要角色名做统一视觉标识。
纯文本模式会字面匹配——大小写、空格、标点都严格一致才会匹配。如果想要更灵活,请改用标签包裹。
怎么选合适的写法?
| 你想做的事 | 推荐形态 |
|---|---|
| AI 输出有多个字段(名称、数值、描述等),想分别引用 | 嵌套标签(D、E) |
| 一段整体内容做统一样式(旁白、系统提示) | 单标签(F、G) |
| 短小的行内强调(加粗、删除线) | 符号包裹(H) |
| 内容被一对中/英文符号包裹(如对话引号) | 配对符号(I) |
| 固定字符串高亮(角色名、术语) | 纯文本(J) |
| 内部有不定数量的重复项(评论、消息列表) | 嵌套标签 + 自动拆分子规则(C) |
完整示例:角色状态面板
希望 AI 在合适时输出角色状态:
<角色状态>
<名称>妮妮</名称>
<好感度>85</好感度>
<心情>开心</心情>
<心理活动>窗外的阳光很好,今天应该会是不错的一天吧</心理活动>
</角色状态>第一步:粘贴期望文本
把上面这段贴到面板的「期望文本」框,系统自动产出:
正则表达式(只读、可一键复制):
<角色状态>\s*<名称>([\s\S]*?)<\/名称>\s*<好感度>([\s\S]*?)<\/好感度>\s*<心情>([\s\S]*?)<\/心情>\s*<心理活动>([\s\S]*?)<\/心理活动>\s*<\/角色状态>捕获组:
$1= 名称内容$2= 好感度内容$3= 心情内容$4= 心理活动内容
第二步:写 HTML 替换内容
HTML 替换内容需要完全手写。可以先写一份简单的骨架(class 名按标签名拼),再按自己想要的样式改:
<div class="x-角色状态">
<div class="x-角色状态-名称">$1</div>
<div class="x-角色状态-好感度">$2</div>
<div class="x-角色状态-心情">$3</div>
<div class="x-角色状态-心理活动">$4</div>
</div>或者完全手写:
<div class="status-card">
<div class="status-head">
<span class="name">$1</span>
<span class="mood">$3</span>
</div>
<div class="status-bar">好感度 $2</div>
<div class="status-thought">$4</div>
</div>第三步:写 CSS
把对应的 .status-card 等样式写到 全局 CSS 样式,AI 输出时就会自动渲染。
想省事的话,有三个现成的样式钩子可以直接套,不用自己写 CSS:
| 类名 | 效果 |
|---|---|
.msg-bold | 和系统的加粗一致 |
.msg-italic | 和系统的斜体一致 |
.msg-hr | 和系统的分隔线一致 |
例如 <span class="msg-bold">$1</span> 就能让 $1 用上和正文加粗完全相同的样式。这三个类只在你手写模板时用得上,AI 不会自动输出它们。
嵌套重复结构:自动拆分为子规则
单条正则没法处理"数量不定的子项"——比如一条微博下面有 N 条评论。系统会在粘贴样本时自动检测这种情况,给出拆分提示。
例如:
<weibo>
<user>jihyun</user>
<text>今晚的咖啡有点苦</text>
<comments>
<comment><cuser>张三</cuser><ctext>👍</ctext></comment>
<comment><cuser>李四</cuser><ctext>晚安</ctext></comment>
<comment><cuser>王五</cuser><ctext>失眠了?</ctext></comment>
</comments>
</weibo>样本下方会出现提示:
ⓘ $3 内部有 3 个
<comment>,建议拆成独立子规则处理[拆分为子规则]
点击"拆分为子规则" 后系统自动:
- 在当前规则上方插入一条子规则,sample 设为单条
<comment>...</comment> - 自动识别
<comment>为嵌套标签,生成内层正则(捕获cuser和ctext) - 拆分按钮变为「已拆分」灰色禁用,防止重复点击
子规则在父规则之前执行——先把每条 <comment> 转成 HTML,外层规则的 $3 拿到的就已经是渲染好的评论 HTML。
顺序由列表决定(分组不改变这一点,见用分组整理规则)。子规则必须排在父规则上方。系统自动拆分时已经处理好顺序,手动调整规则时也要遵守这个原则。唯一的例外是 <details> / <options> 预设规则——它们永远优先于其他规则执行,与列表位置无关。
用分组整理规则
规则一多,列表会很长。编辑器支持把规则装进分组:
- 点规则列表下方的「新建分组」创建一个空分组,给它起个名字(如「手机界面」「战斗面板」),最长 50 字
- 在规则编辑弹窗的「分组」下拉里,把规则挪进某个分组,或选「不分组」移出来
- 分组头部可以点击折叠/展开,右侧「⋯」菜单提供:添加规则 / 重命名 / 解散分组 / 保存为素材 / 删除分组
- 分组之间、分组内的规则之间,都可以拖拽排序(抓住左侧的六点手柄)
分组只影响编辑器里的展示,不影响执行。 规则实际仍按「从上到下」的扁平顺序依次执行——分组只是把连续的一段规则收进一个折叠卡片里。所以拖动分组的位置,等于把它里面所有规则整段前移/后移,会真实改变执行顺序;而给规则打上分组标签本身不改变任何行为。
「解散分组」只是把分组外壳去掉,里面的规则原地保留、顺序不变;「删除分组」会连同组内规则一起删掉。
保存到素材库,跨作品复用
正则规则和全局 CSS 都可以存进你自己的素材库,在别的作品里直接导入,不用来回复制粘贴。
- 存:规则的「⋯」菜单 →「保存为素材」;整个分组的「⋯」菜单 →「保存为素材」(把整组规则存成一条素材)
- 取:规则列表下方的「从素材库导入」,选一条素材导进当前作品
导入全局 CSS 时会问你是追加到现有内容后面,还是覆盖现有内容;导入正则素材则是追加到规则列表末尾。
素材库是你个人私有的,不会公开、也不会随作品发布出去。上限:最多 200 条素材,单条名称 50 字、内容 100,000 字。
面板各项说明
| 字段 | 说明 |
|---|---|
| 规则名称 | 备注用,写不写都行(创作台列表里显示该名字) |
| 预设标签下拉 | 切换为预设标签(如旁白/对话气泡)或保持自定义 |
| 应用对象 | 仅 AI 消息 / 仅用户消息 / 全部消息 |
| 分组 | 把这条规则归入某个分组,或选「不分组」;也可在这里直接新建分组 |
| 期望文本 | 粘贴 AI 输出样本,自动产出正则 |
| 正则类型 | 期望文本框右侧的下拉,默认「自动识别」;可手动强制为 嵌套标签 / 单标签 / 符号 / 纯文本,用于纠正自动识别失误的场景 |
| 填入模板 | 一键填入示例期望文本(角色状态面板) |
| 正则表达式 | 自动生成,只读,右侧"复制"按钮可一键复制 |
| 捕获组 | 列出 $1、$2... 及对应内容预览 |
| HTML 替换内容 | 你写的 HTML 模板,支持 $1、$2... 引用 |
| 执行顺序 | 父子规则才显示,标明当前规则的执行序号 |
| 删除规则 | 底部左侧 |
| 保存 | 底部右侧 |
不会写 HTML?让 AI 帮你写
写好期望文本 + 复制正则后,把内容发给 ChatGPT / Claude:
我有一段正则
/<角色状态>\s*<名称>([\s\S]*?)<\/名称>.../g,会匹配以下结构:<角色状态> <名称>妮妮</名称> <好感度>85</好感度> <心情>开心</心情> <心理活动>...</心理活动> </角色状态>请帮我写一段 HTML 替换内容 + 配套 CSS,要求做成卡片样式,左上角显示名称,右上角显示心情 emoji,下面显示好感度进度条和心理活动。
AI 会同时给出 $1 $2... 引用的 HTML + 全局 CSS,分别贴到「HTML 替换内容」和全局 CSS 样式里即可。
进阶:仍想手写正则
少数场景下可能想完全手写正则(比如特殊的 lookbehind、不规则边界)。当前编辑器不支持手写入口——所有正则都从「期望文本」生成。如果有这种刚需,可以让 AI 帮你包装出一段「等价的嵌套标签样本」让系统生成等价正则;或在 正则表达式科普 了解基础概念后联系我们提需求。