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}