查找并替换所有以 # 开头的单词,并将标签文本包装在 HTML 中
Posted
技术标签:
【中文标题】查找并替换所有以 # 开头的单词,并将标签文本包装在 HTML 中【英文标题】:Find and Replace all words starting with # and wrap the hashtagged text in HTML 【发布时间】:2019-04-02 16:33:50 【问题描述】:如果这是重复的,我深表歉意,但我似乎找不到我的答案,我一直在寻找某个时间。使用 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】:你可以使用
var res = Regex.Replace(s, @"#\w+", "<span class=\"yellow\">$&</span>");
见regex demo
#\w+
匹配 #
,然后是 1 个或多个单词字符(字母、数字、_
等),$&
引用整个匹配值(因此,无需在整个正则表达式模式)。
【讨论】:
也感谢 Wiktor 的演示。非常感谢。以上是关于查找并替换所有以 # 开头的单词,并将标签文本包装在 HTML 中的主要内容,如果未能解决你的问题,请参考以下文章
纯 Javascript - 查找/替换 DOM 中的单词列表
Django 在字符串中查找 Hashtags 并通过将其包装在 <a> 标记中来替换它