# 📐 正则

已发布 2025-06-26

# 正则配置的作用

在 Tavo 中,正则表达式用于自动化处理文本内容。具体来说,它可以帮助你:

  1. 识别特定的文本模式,比如去掉不需要的前缀,或者提取特定信息。
  2. 修改替换文本内容,使得角色对话更加自然或符合设定。
  3. 清理多余的字符或格式,使对话更加简洁和符合标准。

正则的主要应用是在文本处理自动替换方面,比如你可以自动去除用户和角色对话中的冗余信息,或者统一格式。

# 正则配置项详解

# 1. 名称

  • 作用:为这个规则起个名字,便于区分和管理。
  • 举例

名称:清理系统提示

这只是为了方便你识别它,例如你有多个规则时,名称能帮助你更快找到需要的规则。

# 2. 正则表达式(Find Regex)

  • 作用:正则表达式是你要匹配的文本模式。它是用来搜索文本中的特定模式,并告诉系统你要匹配哪些内容。
  • 举例

正则表达式:^\[系统提示\]:(.+)$

这个正则表达式的意思是:匹配所有以[系统提示]:开头的内容,捕获[系统提示]:后面的所有文本。例如,[系统提示]:任务开始中的"任务开始"会被匹配到并提取出来。

  • ^:表示匹配行的开始
  • \\\[系统提示\\\]:匹配字面字符[系统提示][]在正则表达式中有特殊含义,需要用反斜杠\转义)。
  • (.+)$:表示匹配冒号后面的内容,并捕获它。

# 3. 替换内容(Replace With)

  • 作用:这是你希望用来替换匹配到内容的文本。你可以用$1$2等来引用正则表达式捕获的组。
  • 举例

替换内容:$1

这个意思是将正则表达式中第一个捕获组(即[系统提示]:后的内容)替换为新内容。所以,[系统提示]:任务开始就变成了任务开始

你还可以使用其他占位符,如:

  • {{match}}:表示完整的匹配内容(整个"[系统提示]:任务开始")。
  • $1:表示第一个捕获组(即"任务开始")。

# 4. 替换前修剪(Trim Out)

  • 作用:在执行替换之前,移除匹配到的内容中的某些部分,通常用来去掉不需要的部分。
  • 举例

修剪前:玩家说:

这个功能会移除所有匹配到的玩家说:,让你处理的内容变得更干净。

# 5. 作用范围

  • 作用:定义这个规则适用于哪些类型的消息。
  • 具体包括:
    • 用户消息:适用于用户发送的消息。
    • 角色消息:适用于角色发送的消息。
    • 思维链:在AI的思考过程中,对思维链中的内容进行处理。
    • 世界书:适用于角色的背景、世界设定等内容的处理。
  • 举例

如果你希望去除角色消息中的多余前缀,就选择"角色消息"作为作用范围。

作用范围:角色消息

# 6. 执行时机

  • 作用:控制正则规则在哪个时机生效,具体包括:

    • 显示时:当消息准备显示给用户时,执行正则。
    • 发送时:消息发送到系统时执行正则。
    • 发送和显示时:既在发送时也在显示时执行正则。
    • 接收时:接收到消息时执行正则。
    • 接收和改写时:接收到消息并修改内容时执行正则。
  • 举例

假设你想在消息显示之前去掉不需要的符号或多余的部分,可以选择"显示时":

执行时机:显示时

这样系统会在消息呈现给用户之前,先进行文本处理。

# 7. 替换参数

  • 作用:控制是否进行替换,以及如何处理替换内容。
  • 具体包括:
    • 不替换:不进行任何替换,原样保留内容。
    • 原文替换:替换时保留原文格式。
    • 转义替换:替换内容时会自动处理特殊字符(例如将反斜杠等转义字符进行适当转义)。
  • 举例

如果你选择"原文替换",那么替换后的内容将保持原文格式,避免出现编码错误等问题:

替换参数:原文替换

# 综合示例

假设你有以下规则:

  • 用户消息中的"[系统提示]:"需要被去掉,只保留后面的内容。
  • 使用正则表达式:^\\\[系统提示\\\]:(.+)$
  • 替换内容:$1
  • 作用范围:用户消息
  • 执行时机:显示时
  • 替换参数:原文替换

配置完成后,用户发送的消息:

[系统提示]:任务开始

将被显示为:

任务开始

# 总结

  • 正则表达式帮助你识别和修改文本的特定模式。
  • 替换内容决定了如何修改匹配到的文本。
  • 作用范围执行时机帮助你决定在哪些场合、何时应用这些修改。
  • 替换参数控制替换时的具体行为。

通过正则表达式,你可以大大提高对话内容的管理和自动化处理,使得对话更加自然、符合预期。