很抱歉,如果这是重复的,但我似乎找不到答案,我一直在寻找。我正在尝试使用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);
任何帮助将不胜感激。
答案 0 :(得分:2)
您可以使用
var res = Regex.Replace(s, @"#\w+", "<span class=\"yellow\">$&</span>");
请参见regex demo
#\w+
匹配#
,然后匹配1个或多个单词字符(字母,数字,_
等),而$&
引用整个匹配值(因此,无需在整个正则表达式模式周围使用捕获组。