您的IsMatch方法正在使用该选项RegexOptions.IgnorePatternWhitespace,允许您将注释放在正则表达式中,因此您必须使用#chatacter,否则它将被解释为注释.
RegexOptions.IgnorePatternWhitespace
if (!IsMatch(tagname,@"")) { html = html.Remove(tag.Index, tag.Length); }