#regex #dfa #转换 #nfa #自动机 #有限 #非确定性

regex_dfa

一个将正则表达式转换为确定性有限自动机的crate。

6个版本 (破坏性更新)

使用旧Rust 2015

0.5.0 2016年8月8日
0.4.0 2016年1月11日
0.3.0 2015年10月3日
0.2.0 2015年9月26日
0.0.1 2015年8月16日

#1870 in 算法

MIT/Apache

170KB
3K SLoC

regex_dfa

一个将正则表达式编译为确定性有限自动机的crate。

Build status Coverage Status

文档

为什么?

一些正则表达式实现(例如 rust的regex库)基于非确定性有限自动机(NFA)的模拟。通过将NFA转换为DFA,我们可以获得速度提升,但代价是编译时间和内存使用。 初步基准测试 显示比rust默认的 regex crate有显著的性能提升。

限制

  • 将NFA转换为DFA可能会消耗大量内存,尤其是涉及Unicode字符类时。
  • 分组捕获有点棘手,这个crate没有处理它们。
  • regex_dfa 目前仅适用于nightly rust。

许可证

regex_dfa 采用 MIT 许可证和 Apache 许可证(版本 2.0)。请参阅 LICENSE-APACHE 和 LICENSE-MIT 了解详细信息。

依赖项

约 6–15MB
约 164K SLoC