我有这个正则表达式,将带有主题标签的单词转换为链接。这里:
public static string LinkifyHashTags(string text)
{
return Regex.Replace(text, "(\\#\\w+) ", "<a href=\"#\">$1 </a>");
}
但是,如果字符串是这样的:
“这会将#Google +,#Twitter和#Youtube等#hashtags转换为链接”
唯一匹配的标签是 #hashtags 和 #Twitter 。 #Google + 和 #Youtube 不匹配。有关上述代码的任何帮助吗?
答案 0 :(得分:1)
使用此正则表达式:(\\#\\w+)
(末尾没有空格)
这将匹配 #hashtags , #Google (无加号), #Twitter 和 #Youtube
如果您想将+
符号添加为有效的主题标签,请使用以下代码:\\#[\\w+]+
答案 1 :(得分:1)
您可以删除空格,或使用先行断言,允许空格,逗号,加号,字符串结尾表示哈希标记的结尾。
你应该在哈希标签中查找构成有效字符的内容
"(\\#\\w+)(?=[ ,+]|$)"
带有可选的多个加号作为哈希标记的一部分
"(\\#\\w+[+]*)(?=[ ,]|$)"
带有可选的单加号作为散列标记的一部分
"(\\#\\w+[+]?)(?=[ ,]|$)"