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}