Symbolic derivatives and the rust rewrite of RE
2 months ago
- #rust
- #regex
- #performance
- RE#已用Rust重写并开源,现可作为crate在crates.io上获取
- Rust版本采用符号导数替代Brzozowski导数,提高了效率并支持更复杂的正则表达式模式
- 性能测试表明RE#在某些场景下优于其他正则引擎,特别是在不区分大小写匹配和环视方面
- 符号导数使引擎能一次性计算所有字符的转换,改进了状态机构建过程
- 该Rust版本支持无限制的前瞻断言,相比.NET版本提供了更灵活的正则模式
- 字符集采用256位向量表示,通过位运算快速执行集合操作
- 跳跃加速优化通过跳过不影响状态转换的输入字节来提升性能
- 未来工作包括添加SIMD预过滤器、双向扫描等优化以进一步提升性能