从主题标签正则表达式中删除点



我在我的 Swift 项目中使用 KILabel,以便将主题标签转换为链接。我的问题是我所做的正则表达式函数也在捕获点。例如,如果用户写#18.3,我只想捕获#18

我尝试了一些东西,以便在某个点上削减主题标签,但没有成功。

regex = [[NSRegularExpression alloc] initWithPattern:@"(#+[\S\_]+)?" options:0 error:&error];

你知道我怎么能做到这一点吗?

您拥有的正则表达式匹配 1+ #个字符,然后匹配 1 个或多个任何非空格字符。

要在第一个点之前停止匹配,请使用

@"#[^\s.]+"

如果里面可以有点,请使用

@"#[^\s.]+(?:\.[^\s.]+)*"

  • # - #
  • [^s.]+ - 除空格和.以外的一个或多个字符
  • (?:.[^s.]+)* - 零次或多次重复
    • . - 一个点
    • [^s.]+ - 除空格和.以外的 1 个或多个字符。

最新更新