我有以下C#代码替换HTML字符串中的主题标签并且它运行良好但它也替换了撇号,因为它们编码为'
代码用URL替换#39。
例如汉堡包现已转换为Hamburger&<a href\"Default.aspx?search=39">39</a>s
如何忽略正则表达式替换的撇号?
public String ReplaceHashTags(string strContent)
{
string strHashtags = @"#(\w+)";
strContent = Regex.Replace(strContent, strHashtags,
"<a href=\"Default.aspx?search=$1\">$1</a>");
return strContent;
}
答案 0 :(得分:1)
如果#
前面有&
,您可以告诉正则表达式不匹配:
var strHashtagPattern = @"(?<!&)#(\w+)";
如果你想排除所有可能的特殊字符转义,那么负向前瞻可能会更好:
var strHashtagPattern = @"(?!(?<=&)#[\w\d]+;)#(\w+)";