C# 将html正文中的hashtag替换为链接,而不匹配C中的内联CSS#
因此,我试图替换HTML字符串中的hashtag 我遇到的问题是,它与指向页面中片段的C# 将html正文中的hashtag替换为链接,而不匹配C中的内联CSS#,c#,regex,.net-core,C#,Regex,.net Core,因此,我试图替换HTML字符串中的hashtag 我遇到的问题是,它与指向页面中片段的内联css和锚定标记相匹配 以这个html为例: <div style="color:#ffff">#my_tag</div> #我的标签 以及守则: public static string ReplaceHashtag(string input) { Func<string, string> replacer = v => $&quo
内联css
和锚定标记相匹配
以这个html为例:
<div style="color:#ffff">#my_tag</div>
#我的标签
以及守则:
public static string ReplaceHashtag(string input)
{
Func<string, string> replacer = v => $"<a href=\"/tags/{v}\">{v}</a>";
return Regex.Replace(input, @"\b?\#\w*\b", match => replacer(match.Value));
}
公共静态字符串替换hashtag(字符串输入)
{
Func replacer=v=>$“”;
返回Regex.Replace(输入@“\b?\\w*\b”,match=>Replace(match.Value));
}
将用锚标记替换css属性和hashtag。我还没有用大量输入测试过这一点(只是OP中提供的示例输入),但这种模式似乎适合我:
var pattern = @">.*(#\w*).*<";
var tempHtml = "<div style=color:#ffff>#my_tag</div>";
var ms = Regex.Match(tempHtml, pattern, RegexOptions.IgnoreCase);
var tag = ms.Groups.Count > 0 ? ms.Groups[1].Value : string.Empty;
var pattern=@“>.(#\w*).......#(\w*).*也许您可以提供一些示例数据?很好,完成了。
var pattern = @">.*#(\w*).*<";