#8179·onnx

重新考虑 Regex 引擎,用于 RegexFullMatch 参考实现(符合 RE2 规范)

作者: andife创建于 2026年7月11日更新于 2026年9月13日
标签module: reference implementationdiscussion

| 选项 | 判断 | | google-re2 (官方绑定,从 google/re2Python/ 目录中发布) | 直接验证了对 PyPI 的文件列表的验证:当前版本(1.1.20251105,2025-11-05上传)为 CPython 3.10-3.14 提供了 win32/win_amd64/win_arm64 轮,以及 macOS 和 manylinux 轮,在 PyPI 和 conda-forge 上均可找到google/re2#516(Python 3.13 轮问题)已关闭。最符合规范的选项(真正的 RE2 语法 + 保证),但需要在我们自己的 CI(pip + pixi,所有三个操作系统)中重新验证才能提交。 | | re2 (一个不同的、无关的 PyPI 包 - 很容易与上述包混淆) | 最后发布于 2019 年 2 月,其自身文档中提到,对于它无法处理的任何模式,它会默默地回退到 Python 的 re 中 - 这会再次引入回溯行为。避免使用;主要是为了防止有人因为名称混淆而选择此选项。 | | sarnold/google-re2 (一个小的 GitHub 仓库,2 个星级,0 个分支) | 与上面的官方包相同的底层绑定(其自身的 README 表明源代码位于 google/re2 的一个分支中),在同一个 PyPI 名称下打包。最后一次推送为 2022 年 7 月 10 日 - 过去四年了。这是一个遗留/并行的分发路径,不是一个独立的替代方案;没有理由优先于正在积极发布的上游版本。 | | rure / rure-Python (Rust regex 编程库绑定) | 正确的算法保证(有限自动机,线性时间 - 通过 regex 编程库的 crates.io 描述进行了验证)。但是,rure 的最后一次 PyPI 发布是 2019 年 10 月的 0.2.2,其中仅包含 macOS 和 manylinux(Linux)的轮子 - 从未发布过 Windows 轮子。 | | regex-Rust (PyPI,