查找并替换所有以#开头的单词,并将哈希标签文本包装为HTML

时间:2018-10-29 17:17:43

标签: c# regex replace find

很抱歉,如果这是重复的,但我似乎找不到答案,我一直在寻找。我正在尝试使用C#或正则表达式查找并替换字符串中所有具有哈希标记的单词,并将其包装在HTML标记中。

示例输入文本:

I would like to wrap #AllHashtags with html #Code to make it #StandOut

理想的输出文本

I would like to wrap <span class="yellow">#AllHashtags</span> with html <span class="yellow">#Code</span> to make it <span class="yellow">#StandOut</span>

我已经尝试了以下方法,但是没有运气

tweet.Text = "<span class='yellow'>" + tweet.Hashtags + "</span>";

tweet.Text.Replace("#", "<span class='yellow'>#");

tweet test = tweet.Text.IndexOf("#", 0);

var containsHastag = tweet.Text.Contains("#", StringComparer.OrdinalIgnoreCase);

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您可以使用

var res = Regex.Replace(s, @"#\w+", "<span class=\"yellow\">$&</span>");

请参见regex demo

#\w+匹配#,然后匹配1个或多个单词字符(字母,数字,_等),而$&引用整个匹配值(因此,无需在整个正则表达式模式周围使用捕获组。

enter image description here