Skip to main content

zql_cli/util/
regex.rs

1use regex::{Captures, Match};
2
3#[macro_export]
4macro_rules! regex {
5    ($re:literal $(,)?) => {{
6        static RE: once_cell::sync::OnceCell<regex::Regex> = once_cell::sync::OnceCell::new();
7        RE.get_or_init(|| regex::RegexBuilder::new($re).build().unwrap())
8    }};
9}
10
11#[macro_export]
12macro_rules! regex_insensitive {
13    ($re:literal $(,)?) => {{
14        static RE: once_cell::sync::OnceCell<regex::Regex> = once_cell::sync::OnceCell::new();
15        RE.get_or_init(|| regex::RegexBuilder::new($re).case_insensitive(true).build().unwrap())
16    }};
17}
18
19pub fn get_match<'a>(captures: &'a Captures, index: usize) -> &'a str {
20    captures
21        .get(index)
22        .as_ref()
23        .map(Match::as_str)
24        .unwrap_or_default()
25}