Regex匹配以空格或逗号结尾的单词

本文关键字:结尾 单词 空格 Regex | 更新日期: 2023-09-27 17:51:21

我有这个正则表达式,它将标签前面的单词转换为链接。:

public static string LinkifyHashTags(string text)
    {
        return Regex.Replace(text, "(''#''w+) ", "<a href='"#'">$1 </a>");
    }

但是,如果字符串像这样:

"这将#标签,如#Google+, #Twitter和#Youtube,变成链接"

唯一匹配的标签是#标签#Twitter#Google+#Youtube不匹配。上面的代码有什么帮助吗?

Regex匹配以空格或逗号结尾的单词

您可以删除空格,或者使用前瞻断言,允许空格、逗号、加号、字符串结束来表示散列标签的结束。
您应该查找哈希标签

中有效字符的组成部分。
 "(''#''w+)(?=[ ,+]|$)"

使用可选的多个加号作为散列标签

的一部分
 "(''#''w+[+]*)(?=[ ,]|$)"

带有可选的单加号作为散列标签

的一部分
 "(''#''w+[+]?)(?=[ ,]|$)"

使用这个正则表达式:(''#''w+)(末尾没有空格)

<<p>这将匹配strong> #标签, #谷歌(没有加号), # Twitter # Youtube

如果你想添加+符号作为一个有效的标签,使用:''#[''w+]+