C# 使用正则表达式删除属性中的HTML标记属性

C# 使用正则表达式删除属性中的HTML标记属性,c#,asp.net,C#,Asp.net,我正在尝试从HTML字符串中删除特定属性 <span lang=EN-GB style='font-size:10.0pt;line-height:115%;font-family:"Tahoma","sans-serif";color:#17365D'>Thank you</span> 这是我的HTML字符串示例 <span lang=EN-GB style='font-size:10.0pt;line-height:115%;font-family:"Taho

我正在尝试从HTML字符串中删除特定属性

<span lang=EN-GB style='font-size:10.0pt;line-height:115%;font-family:"Tahoma","sans-serif";color:#17365D'>Thank you</span>
这是我的HTML字符串示例

<span lang=EN-GB style='font-size:10.0pt;line-height:115%;font-family:"Tahoma","sans-serif";color:#17365D'>Thank you</span>
谢谢
有没有办法去除线高度:115%属性,该属性通过在C#net中使用正则表达式提供如下输出

谢谢
我尝试过使用这个正则表达式,但它只是删除了所有的style属性,但我在这里试图实现的是只删除line height属性

Regex.Replace(html, @"<([^>]*)(?:style)=(?:'[^']*'|""[^""]*""|[^\s>]+)([^>]*)>", "<$1$2>", RegexOptions.IgnoreCase);
Regex.Replace(html,@“]*)(?:style)=(?:“[^']*”[^”“]*”[^”“]*”[^\s>]+)([^>]*)>,”,RegexOptions.IgnoreCase);

我只需要匹配style属性中的line height属性,而不考虑它的值,并删除整行,直到分号(;)结束。任何帮助都将不胜感激。谢谢。

您可以尝试使用HtmlAgilityPack,而不是使用Regex

请原谅,下面的例子是一个小混乱(但工作)只是给你一个想法

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml("<span lang=EN-GB style='font-size:10.0pt;line-height:115%;font-family:\"Tahoma\",\"sans-serif\";color:#17365D'>Thank you</span>");

foreach (var item in doc.DocumentNode.Descendants("span"))
{
    var temp = item.Attributes["style"];
    var styles = temp.Value.Split(';').ToList();
    var newStyleList = styles.Where(m => !m.Contains("line-height:115%")).ToList();
    string newStyle = string.Empty;
    foreach (var style in newStyleList)
    {
        newStyle += style + ";";
    }
}
HtmlAgilityPack.HtmlDocument doc=新的HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(“谢谢”);
foreach(doc.DocumentNode.subjects(“span”)中的变量项)
{
var temp=项目属性[“样式”];
var styles=temp.Value.Split(“;”).ToList();
var newStyleList=styles.Where(m=>!m.Contains(“行高:115%”)。ToList();
string newStyle=string.Empty;
foreach(newStyleList中的var样式)
{
新闻风格+=风格+“;”;
}
}

谢谢大家的建议。我已经为这种情况想出了一个正则表达式。如果有人感兴趣,就给你。多谢各位

html = Regex.Replace(html, @"line-height:[^;]+;", "", RegexOptions.IgnoreCase);

只是检查一下用find/replace在记事本中打开HTML不是一个选项吗?请展示您所做的尝试。我建议您使用DOM解析器而不是正则表达式。处理html/xml时不建议使用正则表达式。如果你想发布代码,请编辑你的问题,而不是将其发布在评论中-这将更具可读性。使用正则表达式解析html会将受污染的灵魂召唤到生命的领域。