2 个不稳定版本
0.2.0 | 2021年8月21日 |
---|---|
0.1.0 | 2021年7月25日 |
#81 在 解析工具
15,528 每月下载量
用于 8 个crate(直接使用3个)
26KB
470 行
nom-regex
本crate提供使用regex crate的正则表达式combinators,用于nom parser combinators。
示例
use nom::{Err, error::ErrorKind};
use nom_regex::str::re_match;
fn main() {
let re = regex::Regex::new(r"^\d{4}").unwrap();
let parser = re_match::<(&str, ErrorKind)>(re);
assert_eq!(parser("2019"), Ok(("", "2019")));
assert_eq!(parser("abc"), Err(Err::Error(("abc", ErrorKind::RegexpMatch))));
assert_eq!(parser("2019-10"), Ok(("", "2019-10")));
}
lib.rs
:
使用正则表达式的解析器combinators。
本crate提供使用nom parser combinators的combinators,使用regex crate。
示例
use nom::{Err, error::ErrorKind};
use nom_regex::str::re_match;
fn main() {
let re = regex::Regex::new(r"^\d{4}").unwrap();
let parser = re_match::<(&str, ErrorKind)>(re);
assert_eq!(parser("2019"), Ok(("", "2019")));
assert_eq!(parser("abc"), Err(Err::Error(("abc", ErrorKind::RegexpMatch))));
assert_eq!(parser("2019-10"), Ok(("", "2019-10")));
}
依赖
~3–4MB
~73K SLoC