#regex #dsl #regular #derive #group #capture #macro

rust-regex-dsl_derive

正则表达式 DSL 导出宏

8 个版本

0.1.8 2024年7月28日
0.1.7 2024年7月14日

#89#regular

Download history 97/week @ 2024-07-01 186/week @ 2024-07-08 40/week @ 2024-07-15 69/week @ 2024-07-22 184/week @ 2024-07-29

485 每月下载量
用于 rust-regex-dsl

MIT 许可证

62KB
1K SLoC

Rust 正则表达式 DSL

这个crate是为了帮助使用硬编码的正则表达式而构建的。

为什么

虽然正则表达式是解析和验证字符串的强大工具,但它们在代码库中难以维护。这有几个原因:

  • 编译器无法识别无效的正则表达式。这意味着需要在运行时测试正则表达式,并且需要添加代码来处理无效的正则表达式(这对于有效的硬编码正则表达式是不可能的)。
  • 长正则表达式难以阅读。这意味着维护正则表达式可能比重新编写它们更困难。
  • 捕获组索引访问返回一个可能为空的选项类型,如果组未定义或未捕获时(例如,对于如 ([a-z]+)|([A-Z]+) 这样的正则表达式有两个组但只有一个被捕获,那么索引3的空与索引1的空有不同的含义)。
  • 命名捕获组通过字符串访问 - 因此,如果获取的字符串错误,编译器不会发出警告。

入门指南

添加

[dependencies]
rust-regex-dsl = "0.1"

Cargo.toml 清单中。然后使用可用的宏之一。

示例

此处

依赖关系

~3.5–5MB
~88K SLoC