正则表达式匹配以空白或昏迷结束的单词

时间:2014-03-23 15:11:35

标签: c# regex

我有这个正则表达式,将带有主题标签的单词转换为链接。这里:

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

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

“这会将#Google +,#Twitter和#Youtube等#hashtags转换为链接”

唯一匹配的标签是 #hashtags #Twitter #Google + #Youtube 不匹配。有关上述代码的任何帮助吗?

2 个答案:

答案 0 :(得分:1)

使用此正则表达式:(\\#\\w+)(末尾没有空格)

这将匹配 #hashtags #Google (无加号), #Twitter #Youtube

如果您想将+符号添加为有效的主题标签,请使用以下代码:\\#[\\w+]+

答案 1 :(得分:1)

您可以删除空格,或使用先行断言,允许空格,逗号,加号,字符串结尾表示哈希标记的结尾。
你应该在哈希标签中查找构成有效字符的内容

 "(\\#\\w+)(?=[ ,+]|$)"

带有可选的多个加号作为哈希标记的一部分

 "(\\#\\w+[+]*)(?=[ ,]|$)"

带有可选的单加号作为散列标记的一部分

 "(\\#\\w+[+]?)(?=[ ,]|$)"