vec-reg
Generalized regex like pattern match for vector.
Install
# Cargo.toml
[]
= "0.5.0"
Usage
Example without macro:
use ;
let is_fizz = ;
let is_buzz = ;
let is_fizz_buzz = ;
let reg = concat
.compile;
assert!;
assert!;
assert!;
Example with macro:
use ;
let is_fizz = ;
let is_buzz = ;
let reg = vec_reg!.compile;
assert!;
assert!;
assert!;
Example capture:
use ;
let is_even = ;
let is_odd = ;
let reg = vec_reg!.compile;
let captures = reg.captures;
assert!;
assert_eq!;
let capture_0 = &captures.as_ref.unwrap;
assert_eq!;
assert_eq!;
let capture_1 = &captures.as_ref.unwrap;
assert_eq!;
assert_eq!;
Supported Syntax
| Syntax | Description |
|---|---|
[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. |
RS |
R followed by S |
| R|S | R 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 |