Appearance
消息规则列表 JSON 格式
用于导入导出聊天设定中的消息规则列表。
顶层结构
json
{
"version": 1,
"regexEntries": []
}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
version | number | 是 | 固定为 1 |
regexEntries | array | 是 | 规则条目数组 |
规则条目
regexEntries 中每个元素的字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
title | string | 是 | 规则条目名称 |
search | string | 是 | 正则表达式搜索模式 |
replace | string | 是 | 替换文本模板字符串 |
sourceType | string | 否 | 来源类型:user / character / system。默认 character。 |
targetChannels | array of string | 否 | 去向通道数组,可选值:user / character / system / speech。默认 ["user","character"]。 |
escapeNewlineOnly | boolean | 否 | 仅允许转义换行。默认 false。 |
enabled | boolean | 否 | 是否启用。默认 true。 |
caseSensitive | boolean | 否 | 是否区分大小写。默认 false。 |
global | boolean | 否 | 是否全局匹配。默认 true。 |
最小示例
json
{
"version": 1,
"regexEntries": [
{
"title": "替换括号内容",
"search": "(\\(.*?\\))",
"replace": "",
"sourceType": "character",
"targetChannels": ["character", "system"]
}
]
}完整示例
json
{
"version": 1,
"regexEntries": [
{
"title": "无匹配时不操作",
"search": "(\\(.*?\\))",
"replace": "",
"sourceType": "character",
"targetChannels": ["character"],
"enabled": true,
"caseSensitive": false,
"global": true
},
{
"title": "好感度阶段判断",
"search": "好感度(\\d+)",
"replace": "{{if phase == \"序章\" && $1 < 30}}关系还很陌生{{elseif $1 >= 80}}关系非常亲密{{else}}关系一般{{end}}",
"sourceType": "character",
"targetChannels": ["character", "system"],
"enabled": true,
"caseSensitive": false,
"global": true
},
{
"title": "记录剧情阶段",
"search": "进入(.*)阶段",
"replace": "{{set phase=$1}}{{Match0}}",
"sourceType": "character",
"targetChannels": ["character", "system"],
"enabled": false,
"caseSensitive": false,
"global": false
},
{
"title": "阶段完成后截断当前回复",
"search": "^\\[END\\]$",
"replace": "$0{{command stop}}{{command delete}}",
"sourceType": "character",
"targetChannels": ["user"],
"enabled": true,
"caseSensitive": true,
"global": false
},
{
"title": "多行模板仅允许转义换行",
"search": "^状态$",
"replace": "{{if phase == \"序章\"}}序章\\n继续推进{{else}}其它阶段\\n继续推进{{end}}",
"sourceType": "user",
"targetChannels": ["character"],
"escapeNewlineOnly": true,
"enabled": true,
"caseSensitive": true,
"global": false
}
]
}