# EMQX 6.1 中的不兼容变更

## 6.1.0

- [#16368](https://github.com/emqx/emqx/pull/16368) 内部正则表达式引擎已升级为 PCRE2，带来了更高的匹配性能以及更严格的语法校验。

  如果你在规则引擎 SQL 中使用了 `regex_match`、`regex_replace` 或 `regex_extract` 函数，一些依赖于宽松或未定义行为的现有正则表达式，可能无法再成功编译或按预期进行匹配。

  **需要注意的关键变化包括：**

  - **更严格的转义规则**：此前被忽略的无效或不必要的转义序列，现在会被视为错误。
    - **不再支持**：`[\w-\.]`，在字符类中对 `.` 进行转义是不必要的，现已不被接受；只有元字符才需要转义。
    - **不再支持**：缺少有效十六进制数字的 `\x`（例如 `\xGG`），现在会导致编译错误，而不再被解释为字面量 `x`。
  - **更严格的分组名称校验**：正则表达式中不再允许使用重复或为空的命名捕获分组。

  **需要采取的行动：** 请检查并验证所有使用正则表达式的规则引擎 SQL 定义。对于复杂的正则模式，建议使用符合 PCRE2 规范的测试工具进行验证（大多数在线正则测试工具均支持 PCRE2），或在升级前于预发布 / 测试环境中进行充分测试。