redis_module/utils.rs
1use regex::Regex;
2
3/// Extracts regexp captures
4///
5/// Extract from `s` the captures defined in `reg_exp`
6pub fn get_regexp_captures<'a>(s: &'a str, reg_exp: &str) -> Option<Vec<&'a str>> {
7 Regex::new(reg_exp).map_or_else(
8 |_| None,
9 |re| {
10 let mut res: Vec<&str> = Vec::new();
11 re.captures_iter(s).for_each(|captures| {
12 for i in 1..captures.len() {
13 res.push(captures.get(i).map_or_else(|| "", |m| m.as_str()));
14 }
15 });
16 Some(res)
17 },
18 )
19}