2 unstable releases
0.2.0 | Aug 21, 2021 |
---|---|
0.1.0 | Jul 25, 2021 |
#1230 in Parser implementations
11,374 downloads per month
Used in 13 crates
(4 directly)
26KB
470 lines
nom-regex
This crate provides combinators for nom parser combinators using the regex crate.
Example
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
:
Parser combinators that use regular expressions.
This crate provides combinators for nom parser combinators using the regex crate.
Example
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")));
}
Dependencies
~3–4MB
~73K SLoC