#parser #parser-combinators #regex

nom-regex

regular expressions for nom parsers

2 unstable releases

0.2.0 Aug 21, 2021
0.1.0 Jul 25, 2021

#28 in #parser-combinators

Download history 138/week @ 2022-10-08 112/week @ 2022-10-15 166/week @ 2022-10-22 156/week @ 2022-10-29 132/week @ 2022-11-05 125/week @ 2022-11-12 142/week @ 2022-11-19 108/week @ 2022-11-26 83/week @ 2022-12-03 82/week @ 2022-12-10 107/week @ 2022-12-17 81/week @ 2022-12-24 87/week @ 2022-12-31 100/week @ 2023-01-07 92/week @ 2023-01-14 67/week @ 2023-01-21

372 downloads per month
Used in yofi

MIT license

25KB
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

~2MB
~54K SLoC