C# 从我的html中删除对象标记

C# 从我的html中删除对象标记,c#,regex,C#,Regex,我正在尝试从文本文件中删除对象标记: <object classid=""clsid:F08DF954-8592-11D1-B16A-00C0F0283628"" id=""Slider1"" width=""100"" height=""50""> <param name=""BorderStyle"" value=""1"" /> <param name=""MousePointer"" value=""0"" /> <param

我正在尝试从文本文件中删除对象标记:

    <object classid=""clsid:F08DF954-8592-11D1-B16A-00C0F0283628"" id=""Slider1"" width=""100"" height=""50"">
  <param name=""BorderStyle"" value=""1"" />
  <param name=""MousePointer"" value=""0"" />
  <param name=""Enabled"" value=""1"" />
  <param name=""Min"" value=""0"" />
  <param name=""Max"" value=""10"" />
</object>

到目前为止,我的正则表达式是:

hmtl=Regex.Replace(html,@“]>(?:.?)?,“”,RegexOptions.IgnoreCase)


内部参数标记不会被删除

如果我明白你的要求,这就行了:

$line =~ s/<object.*?>.*?<\/object>//is;
$line=~s/*?///is;
这就是Perl,所以潜在的怪癖是:

  • 表示非贪婪匹配,即它应该匹配模式的第一个可能终止,而不是最后一个
  • /i不区分大小写
  • /s表示将整个文本视为一行(以便能够跨换行符匹配)

您应该能够指定
标记作为表达式的一部分,并将所有内容匹配到
标记

Regex.Replace(html, @"<object.*?</object>", "", RegexOptions.Singleline);

Regex.Replace(html,@“此正则表达式可能适合您(它非常贪婪):


你可以使用DOM。。。
<object.+</object>
HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm");
foreach(HtmlNode obj in doc.DocumentElement.SelectNodes("object") {
    obj.Parent.RemoveChild(obj);
}
doc.Save("file.htm");