Skip to content

本文介绍正则相关的进阶知识,其实也不太难,小白不想看跳过也没关系,不过想要写卡的可以看一下。

正则编辑界面
正则编辑界面

如图,是正则编辑界面,可以在这里编辑正则,我们来认识一下上面的各个选项。

查找与替换

查找正则表达式

这是查找功能,可以在这里输入你要查找的文本,基于正则表达式实现。

关于正则表达式,我不做详细介绍,只是简要说明。平常,我们的查找都是精准查找,比如老师下发一张成绩单,你要查找你自己的成绩,于是,你输入自己的姓名张三,但这样的查找,功能太弱了。

假设你拿到一份几万行网页源码,想找出里面所有手机号。普通查找只能搜一个确定号码,比如 13812345678。但问题是:你根本不知道源码里有哪些号码,所以没法一个个搜。而正则可以直接搜“手机号的规律”:1[3-9]\d{9}。意思是:以 1 开头,第二位是 3-9,后面再跟 9 个数字。这样就能一次找出全文所有手机号。

关于酒馆状态栏的具体案例,可以参考文章怎样用 AI 美化状态栏

替换为

输入你要替换的文本,会将基于正则表达式的查找结果,替换为你输入的文本。输入为空时文本会被删除。

作用范围

顾名思义,正则查找的作用范围,只在你指定的范围内进行查找。

  • 用户输入:用户输入的文本,会发送给 AI。不太常见,SP数据库会使用该类型的正则对用户输入做美化。
  • AI输出:AI输出的文本,最为常见,超过 90% 的正则作用范围都是这个。常见案例有状态栏美化、预设思维链隐藏等。
  • 快捷命令:不太常见。
  • 世界书:不太常见。
  • 推理:对 AI 思考的文本进行替换,不太常见。

表层替换

正则替换默认直接对查找结果进行替换,比如对 AI 输出* 进行替换时,会直接编辑 AI 输出的消息,这样替换结果会永久生效,无法修改,导出聊天记录也只会导出替换后的文本,如果不想这样,勾选表层替换任意一个选项,替换时便均不会修改原始文本,导出聊天记录时导出的文字是替换前的版本。值得注意的是,两个选项允许同时勾选

  • 仅影响显示:替换结果会影响显示。以状态栏为例,比如 AI 发送了用标识符分割的纯文本,替换时会修改为 HTML 代码,你能看到美化后的状态栏,但编辑该回复时,你会看到回复依旧是原始文本,而不是 HTML 代码。
  • 仅影响后端提示词:替换结果会发送给 AI,还是以状态栏为例,如果直接发给 AI HTML 代码,一是浪费词元,二是影响 AI 的注意力,所以不会勾选本选项,将原始文本发送给 AI,而不是 HTML 代码。
  • 两个都勾选:替换结果会影响显示,也会发送给 AI,其实用的较少,既然都这样了,为啥不直接把文本修改了呢?
  • 同时作用:正则是允许同时作用的,比如你这个东西想将它替换成特定内容,但不管是替换前还是替换后的文本,都不想发给 AI,可以建立两个正则,常见于预设的思维链正则。一般会有一个正则用于美化,将思维链替换为 HTML 代码,勾选仅影响显示;另一个正则用于隐藏,将思维链替换为空,勾选仅影响后端提示词

作用深度

这个选项默认情况下是无限深度,会影响所有消息,你可以根据需要调整,让其只影响特定楼层。比如说状态栏或者 mvu 变量,你可以设置为只发送最近三轮对话的内容,避免引入太多无关信息。