Expand description

Generalized regex like pattern match for vector.

use vec_reg::{Regex, CompiledRegex, vec_reg};

let is_fizz = |x: &i32| x % 3 == 0;
let is_buzz = |x: &i32| x % 5 == 0;
let reg = vec_reg!([is_fizz]([is_buzz][|x| x % 15 == 0])+).compile();    
assert!(!reg.is_match(&vec![1, 2, 3]));
assert!(reg.is_match(&vec![3, 5, 15]));
assert!(reg.is_match(&vec![6, 10, 15, 10, 30]));

Supported Syntax

SyntaxDescription
[function_name]Match any values that satisfied given function.
[|x| *x == 1]Match any values that satisfied given closure.
[^function_name]Match any values that not satisfied given function.
[^|x| *x == 1]Match any values that not satisfied given closure.
.Match any values.
^a beginning of input
$a end of input
(R)numbered capturing group (submatch)
(?:R)non-capturing group
(?P<"name">R)named & numbered capturing group (submatch)
RSR followed by S
R|SR or S (prefer R)
R?zero or one R, prefer one
R??zero or one R, prefer zero
R*zero or more R, prefer more
R*?zero or more R, prefer fewer
R+one or more R, prefer more
R+?one or more R, prefer fewer
R{n,m}n or n + 1 or … or m, prefere more
R{n,m}?n or n + 1 or … or m, prefere fewer
R{n,}n or more R, prefere more
R{n,}?n or more R, prefere fewer
R{n}exactly n R
R{n}?exactly n R

Macros

Structs

Captures represents a group of captured sub-slice for a single match.

Enums

Traits