#regex #routing #express #routes

path2regex

Express 风格路径到 RegExp 工具

4 个版本

0.0.4 2022 年 12 月 2 日
0.0.3 2022 年 11 月 20 日
0.0.2 2022 年 11 月 20 日
0.0.1 2022 年 11 月 20 日
0.0.0-alpha 2022 年 11 月 13 日

#839 in 文本处理

MIT/Apache

53KB
1.5K SLoC

Path-to-RegExp

Crates.io Crates.io Crates.io CI codecov

安装

cargo add path2regex

特性

用法

类似于 path-to-regex

差异

认为 regex 不支持 ?=,配置项中 endends_with 属性的性能可能会有所不同。

注意: regex 通过执行 captures 来获取结果,提供名为 END_WITH_DELIMITER 的匹配组来处理额外的结尾。

let re = path2regex::PathRegexBuilder::new("/test")
        .set_end(false)
        .build()
        .unwrap();

// expected: Captures({0: Some("/test")})
// found: Captures({0: Some("/test"), "END_WIND_DELIMITER": Some("")})
println!("{:?}", re.captures("/test").unwrap());
// expected: Captures({0: Some("/test")})
// found: Captures({0: Some("/test/"), "END_WIND_DELIMITER": Some("")})
println!("{:?}", re.captures("/test/").unwrap());
// expected: Captures({0: Some("/test")})
// found: Captures({0: Some("/test/"), "END_WIND_DELIMITER": Some("/")})
println!("{:?}", re.captures("/test/route").unwrap());

依赖项

~2.2–3.5MB
~61K SLoC