# 
        正则处理功能使用教程
    
正则处理是一项用来「自动找词并替换」的实用功能。开启后,系统会在发送到 AI 前或保存到聊天记录前,按您设定的规则,自动改写文本内容,让对话更整洁、更安全、更符合您的习惯。
提示
为了保证性能,OMate 的正则只支持两种场景:
- 发送到 API 前对要发送的 Message 的 Content 进行处理
 - 在将 AI 回复保存到数据库前进行处理
 
        # 
        你能用它做什么
    
- 统一文本格式:去掉多余空格、修复标点、清理多余前后缀
 - 优化内容展示:移除不需要的“思考块”、隐藏敏感信息
 - 批量替换用词:将某些词语自动替换为您更偏好的表达
 - 简化清理工作:在保存前自动净化文本,减少后续整理
 
        # 
        入口与开启
    
正则处理功能现在可以在两个地方进行设置:
        # 
        API 设置
    
- 打开设置菜单
 - 进入「API 设置」
 - 找到「正则处理设置」
 - 打开开关「启用正则处理」
 
        # 
        角色专属设置
    
- 进入角色列表
 - 选择要编辑的角色
 - 在角色配置界面找到「正则处理设置」
 - 打开开关「启用正则处理」
 
角色专属的正则规则只对该角色生效,而 API 设置的规则对所有所用该 API 的对话生效。开启后,您可以管理自己的正则规则列表。
        # 
        正则规则列表
    
正则规则列表现在支持分组管理功能:
- 分组筛选:在规则列表顶部可以选择查看特定分组的规则,或查看所有规则
 - 添加规则:点击「添加规则」创建一条新规则
 - 开关规则:在列表中开启/关闭某条规则
 - 编辑规则:点击规则进入编辑界面,修改后保存
 - 删除规则:在规则项中选择删除
 - 分组显示:每个规则会显示其所属分组(如果有设置)
 - 深度信息:规则会显示其深度限制范围(如果有设置)
 
当「正则处理」开启时,系统会逐条应用已启用的规则。
        # 
        添加/编辑一条规则
    
进入「添加/编辑正则规则」界面后,您会看到以下内容:
- 名称:给规则起个易识别的名字(例如:去空格、移除思考块)
 - 查找正则表达式:要"匹配"的内容规则(可以简单理解为"要找什么")
 - 替换字符串:把匹配到的内容替换成什么(可以使用捕获组,如 
$1、$2或$<name>) - 应用位置:选择规则生效的时机
- 发送到 API 前(
BEFORE_TO_API):在把内容发给模型前先处理 - 保存到数据库前(
BEFORE_TO_DATABASE):在把内容写入聊天记录前先处理 
 - 发送到 API 前(
 - 分组:可选,为规则设置分组名称,便于管理和组织相关规则
 - 深度限制:可选,设置规则应用的深度范围
- 最小深度:规则生效的最小深度值(留空表示无限制)
 - 最大深度:规则生效的最大深度值(留空表示无限制)
 
 - 启用:是否让这条规则生效
 
提示 "新功能说明"
分组功能:通过设置分组名称,您可以将相关的正则规则归类管理,在规则列表中可以按分组筛选显示。
深度限制:用于控制规则在特定深度范围内生效,适用于需要根据对话深度或嵌套层级来应用不同处理规则的场景。
提示:如果您的替换字符串里用了 $1、$2 这类"捕获组",它们会对应您正则表达式里的括号内容。支持命名捕获组 $<name>。
        # 
        内置测试与调试
    
创建或编辑规则时,您可以直接在界面里测试:
- 在「测试输入文本」中粘贴要测试的内容
 - 点击「正则测试」按钮
 - 在「替换结果」中查看系统将如何改写文本
 
- 若没有匹配到内容,系统会提示「正则表达式没有匹配到任何内容」
 - 若表达式有误,系统会提示具体错误,方便您修正
 
建议先用小段文本测试,确认效果后再用于正式对话。
        # 
        规则生效时机(如何选择应用位置)
    
- 发送到 API 前:更适合处理您的输入文本(例如:统一格式、替换用词),让模型收到的内容更规范
 - 保存到数据库前:更适合对输出或完整消息进行“净化”(例如:移除不需要的块、隐藏敏感信息),让聊天记录更干净
 
您可以根据需求为同一主题设置两条规则,分别在不同阶段处理。
        # 
        常见示例(直接可用)
    
将多个空格合并为一个
- 查找:
\s+ - 替换:
(单个空格) - 位置:发送到 API 前
 
- 查找:
 去掉每行结尾的空白
- 查找:
\s+$ - 替换:空(留空)
 - 位置:发送到 API 前
 
- 查找:
 统一术语(把"智能体"改为"AI 助手")
- 查找:
智能体 - 替换:
AI 助手 - 位置:发送到 API 前
 - 分组:术语统一
 
- 查找:
 移除思考块(示例:删掉"【思考】…【/思考】"包裹的内容)
- 查找:
(?s)【思考】.*?【/思考】 - 替换:空(留空)
 - 位置:保存到数据库前
 - 分组:内容清理
 
- 查找:
 保留括号内的内容并加引号(演示捕获组)
- 查找:
\(([^)]*)\) - 替换:
"$1" - 位置:发送到 API 前
 - 分组:格式化
 
- 查找:
 深度限制示例(仅在对话深度 5-10 时应用)
- 查找:
特定词汇 - 替换:
替换词汇 - 位置:发送到 API 前
 - 最小深度:5
 - 最大深度:10
 - 分组:深度控制
 
- 查找:
 
        # 
        使用建议与注意事项
    
- 先测试再启用:每次新增或修改规则后,都在测试区验证
 - 从简单开始:先用直观的替换,逐步尝试更复杂的匹配
 - 谨慎使用"全局匹配":复杂或范围过大的表达式可能影响性能
 - 不要忘记"应用位置":想处理输入还是保存前,选错位置可能见不到效果
 - 合理使用分组:通过分组功能将相关规则归类,便于管理和维护
 - 深度限制的使用:
- 深度通常指对话轮次或嵌套层级
 - 可以用来在对话的不同阶段应用不同的处理规则
 - 最小深度和最大深度都是可选的,可以只设置其中一个
 
 - 角色专属 vs API 规则:
- 角色专属规则优先级更高,适合特定角色的个性化处理
 - API 规则适合通用的文本处理需求
 
 - **结果不如预期?**检查是否需要转义(例如 
\(而不是(),以及捕获组序号是否对齐 
        # 
        常见问题
    
规则已启用但没有效果?
- 确认应用位置是否正确
 - 检查是否在正确的设置位置(全局 vs 角色专属)
 - 测试区能否匹配到相同的文本片段
 
测试提示"表达式错误"?
- 检查括号是否成对、是否有遗漏的反斜杠
 - 从更简单的表达式开始,逐步完善
 
替换后出现奇怪字符?
- 检查替换字符串是否包含了未预期的符号
 - 如使用 
$1等捕获组,确认正则里有对应括号匹配 
分组功能相关问题?
- 分组名称区分大小写
 - 可以为规则设置相同的分组名称来归类管理
 - 在规则列表中可以按分组筛选查看
 
深度限制不生效?
- 确认深度值设置是否正确(非负整数)
 - 最小深度不能大于最大深度
 - 深度限制主要用于对话轮次控制
 
现在就到「设置 → API 设置 → 正则处理设置」或「角色设置 → 正则处理设置」添加你的第一条规则吧。几分钟的配置,就能让对话更顺畅、更贴合你的偏好。