# FUZZY_MAP 规则指南 ## 规则格式 __代码_块_0__ |职位|名称 |描述 | |---|---|---| | 1 |更换|规则匹配后的输出文本 | | 2 |图案|要匹配的正则表达式或模糊字符串 | | 3 |阈值|对于正则表达式规则:忽略。对于模糊规则:最低匹配分数 (0–100) | | 4 |选项 |可选字典(请参阅下面的“选项参考”)。使用“0”或省略默认值 | ### 基于文件的替换 如果“替换”以“FILE4REPLACMENT_ALLOWED_PREFIXES”中配置的前缀开头 (默认值:`-` 或 `.`),Aura 将其视为文件名并在 插件的目录而不是使用文字字符串。这可以保守秘密(密码、 API 密钥)不在源代码中。 详细信息请参见[File_Based_Replacement.md](../../Feature_Spotlight/Secure_Private_Maps/File_Based_Replacement-zh-CNlang.md)。 ### 原始替换 默认情况下(“False”),替换字符串由 Python 的“re.sub()”处理,它支持使用“\1”或“\2”等正则表达式反向引用来插入捕获的组(例如:“(r'\1', r'(\d)\s+(?=\d)', 95)”)。 如果您的替换是多行字符串或包含未转义的反斜杠(例如代码模板或路径)并且应完全按原样保留,请在选项字典中启用 `'raw_replacement': True`: __代码_块_1__ ### 可用的用户可配置选项: * **`command_flags`**(整数):模式编译期间使用的正则表达式标志。 *示例:* `{'command_flags': re.IGNORECASE}` * **`raw_replacement`**(布尔值):当为“True”时,替换文本被视为纯字符串文字,并被 Python 的“re.sub”反斜杠解析绕过。对于多行提示或带有未转义反斜杠(`\`)的字符串至关重要。 *示例:* `{'raw_replacement': True}` * **`cache`**(布尔值):切换 AURA 结果缓存。对于生成动态输出(例如,当前时间、随机笑话)的规则设置为“False”,以确保在每场比赛中对它们进行最新评估。 *示例:* `{'cache': False}` * **`skip_list`**(字符串列表):指定当此规则匹配时要跳过的后处理管道模块。 *示例:* `{'skip_list': ['LanguageTool']}`(跳过语法检查) * **`only_in_windows`**(正则表达式字符串列表):将规则限制为仅在活动窗口标题与指定模式之一匹配时触发。 *示例:* `{'only_in_windows': [r'^Mozilla Firefox$', r'Chrome']}` * **`exclude_windows`**(正则表达式字符串列表):如果活动窗口标题与指定模式之一匹配,则防止触发规则。 *示例:* `{'exclude_windows': [r'Terminal', r'Claude']}` * **`window_ignore_case`**(布尔值):控制窗口匹配(`only_in_windows` / `exclude_windows`)是否不区分大小写(`True`)或区分大小写(`False`)进行评估。如果省略,则回退到“config/settings.py”中的全局设置“LOWERCASE_WINDOW_TITLES”。 *示例:* `{'window_ignore_case': False}` * **`on_match_exec`**(路径/字符串对象列表):当此规则匹配时应执行的脚本/插件的路径(由捕获所有和后备规则大量使用)。 *示例:* `{'on_match_exec': [SL5NET_AURA_PROJECT_ROOT / 'scripts' / 'custom_action.py']}` ## 管道逻辑 - 规则的处理**自上而下** ## 管道逻辑 - 规则的处理**自上而下** - **所有**匹配规则均适用(累积) - **完全匹配** (`^...$`) 立即停止管道 - 较早的规则优先于较晚的规则 ## 常见模式 ### 匹配单个单词(单词边界) __代码_块_2__ ### 匹配多个变体 __代码_块_3__ ### Fullmatch – 停止管道 __代码_块_4__ ⚠️ 这匹配**一切**。管道停在这里。较早的规则仍然具有优先权。 ### 匹配输入的开始 __代码_块_5__ ### 匹配精确的短语 __代码_块_6__ ## 文件位置 |文件 |相|描述 | |---|---|---| | `FUZZY_MAP_pre.py` |预语言工具 |在拼写检查之前应用 | | `FUZZY_MAP.py` |后语言工具 |拼写检查后应用 | | `PUNCTUATION_MAP.py` |预语言工具 |标点符号规则 | ## 尖端 - 将**具体**规则放在**一般**规则之前 - 仅当您想停止所有进一步处理时才使用“^...$”完全匹配 - `FUZZY_MAP_pre.py` 非常适合在拼写检查之前进行更正 - 测试规则:Aura 控制台中的“您的测试输入” - 备份自动创建为“.peter_backup” ## 示例 __代码_块_7__ ## 你的第一条规则——一步一步 1. 打开 `config/maps/plugins/sandbox/de-DE/FUZZY_MAP_pre.py` 2. 在 `FUZZY_MAP_pre = [...]` 中添加您的规则 3. 保存 — Aura 自动重新加载,无需重启 4. 口述你的触发短语并观看它的触发 ## 推荐的文件结构 将您的规则**放在**长评论块之前: __代码_块_8__ **为什么?** Aura 的自动修复仅扫描文件的前 ~1KB。 如果您的规则出现在长标头之后,自动修复功能将无法找到或修复它们。 还推荐第 1 行的路径注释——它可以帮助人们快速识别文件。