gpt4 book ai didi

c# - 正则表达式从 HTML 中删除所有跨度,保持内部文本不变

转载 作者:太空宇宙 更新时间:2023-11-03 23:32:45 24 4
gpt4 key购买 nike

我正在寻找一个正则表达式,它可以删除所有跨度并保留内部文本。我的内部 HTML 中有这种跨度。

输入

格式正确的 HTML

 <span style='font-size:10.0pt;font-family:"Arial","sans serif"'**>
First span
</span>
<span style="color:#221E1F;">
<span style='font-size:10.0pt;font-family:"Arial";color:windowtext'>
This is to test Regular expression
</span>
</span>
<span style="color:#221E1F;"><span style='font-size:10.0pt;font-family:
"Arial","sans-serif";color:#548DD4'>
last Span text
</span>
</span>

格式不正确:

 <span style='font-size:10.0pt;font-family:"Arial","sans-serif";
mso-bidi-font-style:italic'>&lt;%T</span><span class="A1"><span style='font-size:
10.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;color:windowtext'>PA_Enrollment_Options%&gt;
one of the convenient options below</span></span><span class="A1"><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family:
Calibri;mso-fareast-theme-font:minor-latin;color:#548DD4;mso-themecolor:text2;
mso-themetint:153'>: <o:p></o:p></span></span>

预期输出:第一个跨度这是测试正则表达式最后跨度文本

我试过这个正则表达式 - (<span.*([\r\n]).*>)|(<span.*>)|(</span>).

这在我的 HTML 格式正确时有效,但在我的情况下 HTML 缩进不正确。

我没有使用正则表达式来完全解析。我仅在内部 html 中执行此操作

最佳答案

您可以使用 HtmlAgilityPack 正确地做到这一点:

public string getCleanHtml(string html)
{
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
// return HtmlAgilityPack.HtmlEntity.DeEntitize(doc.DocumentNode.InnerText); // Use if you want to convert HTML entities to their literal view
return doc.DocumentNode.InnerText; // if you want to keep HTML entities
}

然后

var result = getCleanHtml(myInputHtml);

这是输出:

enter image description here

如果您需要去除空格,您可以使用简单的 String.ReplaceRegex.Replace 或 split/join 方法,具体取决于什么你确实需要。

关于c# - 正则表达式从 HTML 中删除所有跨度,保持内部文本不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31557369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com