1 个不稳定版本
0.0.0 | 2022年1月30日 |
---|
#69 in #focus
52KB
890 行
nytri
— 非典型正则表达式实现
nytri
是一个注重用户控制的底层正则表达式库。
这意味着什么?在实践中,这意味着 nytri
被设计为为用户提供对底层正则表达式引擎的非同寻常的访问级别。例如:
- 状态匹配 - 即逐个部分提供匹配片段
- 保存和恢复匹配状态
- ... 以及更多计划中的功能。
此库处于初始开发阶段。 它不应用于任何严肃的环境,并且其功能集远未达到一个高质量正则表达式实现应有的水平。
当前 & 计划功能
在阅读此列表之前请注意:nytri
将始终保证线性时间匹配。因此,某些功能无法完全实现(例如反向引用)。
当前
- (非常) 基本全文匹配(分组、选择、字面量)
- 状态匹配(通过
Matcher::feed
&Matcher::is_match
) - 匹配器状态保存 & 恢复(通过
Matcher::get_state
&Matcher::from_state
)
计划
- 错误显示选项 & 配置
- 语法
- 所有:
.
、*
、+
和?
— 带有标准意义。 - 字符转义
- (ASCII) 字符类
- Unicode 字符类
- 所有:
- 匹配器配置 — 将在未来明确
- 提取捕获组(命名和未命名)
- 可能:有意不捕获某些组,以提高效率。
- 占有性捕获组
- 前瞻 & 后顾(及其负变体)
- 泛型原子和文本类型(例如,与
char
和&str
的替代品,或匹配&[u8]
实现为 "另一种文本类型") - 对反向引用的支持有限(存在可以线性匹配的有用子集)
依赖关系
~290–750KB
~18K SLoC