use std::sync::LazyLock;
/// Legacy: uuid or username
static USER_MENTION_RE: LazyLock regex_lite::Regex> =
LazyLock::new(|| regex_lite::Regex::new(r"\s*([^<]+?)\s*").unwrap());
/// Legacy: label
static MENTION_TAG_RE: LazyLock regex_lite::Regex> =
LazyLock::new(|| {
regex_lite::Regex::new(
r#"]*>\s*([^<]*?)\s*"#,
)
.unwrap()
});
/// New format: @[type:id:label]
static MENTION_BRACKET_RE: LazyLock regex_lite::Regex> =
LazyLock::new(|| regex_lite::Regex::new(r"@\[([a-z]+):([^:\]]+):([^\]]+)\]").unwrap());
pub fn user_mention_re() -> &'static regex_lite::Regex {
&USER_MENTION_RE
}
pub fn mention_tag_re() -> &'static regex_lite::Regex {
&MENTION_TAG_RE
}
pub fn mention_bracket_re() -> &'static regex_lite::Regex {
&MENTION_BRACKET_RE
}