Labs · 酒馆正则测试

正则脚本在线调,
不用再「改一下、开一局」

贴脚本、贴文本,替换结果实时出现:命中标黄,产物标绿。脚本 JSON 里的 placement、markdownOnly、promptOnly 到底管什么,逐条翻译给你。能把界面卡死的灾难回溯正则会被当场拦下——App 里的守护逻辑长什么样,这里就长什么样。

免费浏览器本地运行不上传

填好正则和测试文本,替换结果实时出现在这里。

这个工具怎么来的

脚本解析与执行语义从 Foreverse App 的正则引擎移植——字段映射(scriptName / findRegex / replaceString / placement 数字档 / trimStrings)与酒馆正则面板的导出格式逐字段对齐,替换链的三步顺序(反向引用 → {{match}} → 变量宏)和变量在多条脚本间贯穿的行为,都按 App 侧被单元测试锁定的实现搬过来,代表性用例全部搬进网页引擎自测。2026-07 移植。

正则方言按 ECMAScript(JavaScript)语义执行——酒馆网页版原生就是这个方言,所以「这里怎么跑,酒馆里就怎么跑」是天然成立的。App 在 Android 上用 Java 方言近似,个别写法(如模式内嵌 (?i) 标志)两边行为不同,这里以酒馆为准。

它做不到什么

只测「一段文本 × 一组脚本」的替换效果。多条脚本在真实聊天里的叠加顺序效应、宏在正则里的展开时机(比如 replaceString 里的 {{user}} 在运行时才有值)这里给不了真值——变量宏按空环境起步,{{char}} 这类语境宏原样保留。

minDepth / maxDepth 按你指定的单一深度判定,不模拟整段历史逐楼层跑的效果。

常见问题

为什么我的酒馆正则不生效?

先看三个字段:①placement——脚本声明了作用于哪条链路(用户输入 / AI 输出 / 世界书…),测试语境不匹配就整条跳过,这个工具的「测试语境」下拉能直接复现;②disabled——导出的合集里经常混着被作者关掉的条目;③markdownOnly——它只改显示层,你在提示词检查器里看上行内容当然找不到变化。三个都对了还不生效,多半是正则本身没命中,看左边替换前面板的高亮就知道。

findRegex 里的 /pattern/gi 是什么写法?

JavaScript 的正则字面量形态:斜杠中间是模式,斜杠后面是标志(g 全局、i 忽略大小写、m 多行、s 让 . 匹配换行)。酒馆网页版原生就是这个方言,这个工具与它完全一致。不带斜杠的裸模式也认,按全局替换处理。

replaceString 里能写什么?

三类东西:$1、$2 数字反向引用和 $<名字> 命名组(引用不存在的组会替换成空串);{{match}} 代表整段命中文本;还有 {{setvar}}、{{incvar}}、{{getvar}} 这些变量宏——美化卡靠 {{incvar}} 给选项编号就是这么做的。这个工具全部支持,跨多处命中的变量递增也和运行时一致。

什么样的正则会把聊天界面卡死?

嵌套无界量词,比如 (a+)+ 或 (.*)*:在长文本上会指数级回溯,一条就能把界面钉死几分钟。这个工具用和 App 相同的结构守卫在编译前拦下它们,执行层还有 350 毫秒超时熔断兜底——被拦下时会告诉你原因,方便改写。

相关工具与阅读

← 全部免费工具

酒馆正则测试器 — 在线调试 SillyTavern 正则脚本,实时看替换结果 · Foreverse · 新梦