如何使用正则表达式来删除html中的字体族属性
本文关键字:字体 属性 html 何使用 正则表达式 删除 | 更新日期: 2023-09-27 18:11:40
我有以下HTML:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<p style="margin: 0in 0in 0pt; text-align: center;" class="ng-scope" align="center">
<strong><span style='color: black; font-family: "Arial","sans-serif"; font-size: 18pt;'>Some Text</span></strong>
</p>
<p style="margin: 0in 0in 0pt;" class="ng-scope"><span style='color: black; font-family: "Arial","sans-serif"; font-size: 12pt;'>Some Text.</span></p>
<div class="ng-scope"> </div>
<p style="margin: 0in 0in 0pt;" class="ng-scope"><span style='color: black; font-family: "Arial","sans-serif"; font-size: 12pt;'>Some Text.</span></p>
<div class="ng-scope"> </div>
<p style="margin: 0in 0in 0pt;" class="ng-scope"><span style='color: black; font-family: "Arial","sans-serif"; font-size: 12pt;'>Some Text. </span></p>
<div class="ng-scope"> </div>
<p style="margin: 0in 0in 0pt;" class="ng-scope">
<span style='color: black; font-family: "Arial","sans-serif"; font-size: 12pt;'>Also over</span>
<span style='color: black; font-family: "Cambria Math","serif"; font-size: 12pt;'>‐</span>
<span style='color: black; font-family: "Arial","sans-serif"; font-size: 12pt;'>the</span>
<span style='color: black; font-family: "Cambria Math","serif"; font-size: 12pt;'>‐</span>
<span style='color: black; font-family: "Arial","sans-serif"; font-size: 12pt;'>Some Text.</span>
</p>
<div class="ng-scope"> </div>
<p style="margin: 0in 0in 0pt;" class="ng-scope">
<span style='color: black; font-family: "Arial","sans-serif"; font-size: 12pt;'>Some Text </span>
<span style='color: black; font-family: "Arial","sans-serif"; font-size: 12pt;'>Some Text.</span>
</p>
<div class="ng-scope"> </div>
<p style="margin: 0in 0in 0pt;" class="ng-scope"> </p>
<div class="ng-scope">
<span style='color: black; font-family: "Arial","sans-serif"; font-size: 12pt;'>
<div class="row">
<div class="panel panel-primary col-sm-12 col-xs-24 col-md-8"><img class="img-responsive" src="data:image/png;base64,iVBORw0KGgGSE5XUSzMPLwAAAABJRU5ErkJggg=="></div>
</div>
</span>
</div>
<div class="ng-scope"> </div>
<p style="margin: 0in 0in 0pt;" class="ng-scope"><span style='color: black; font-family: "Arial","sans-serif"; font-size: 12pt;'>Signature of Patient or Legal Guardian</span> </p>
</body>
</html>
所以,所有我需要的是,只要有font-family属性,只要删除他们和相应的属性。所以,基本上,它应该从font-family开始直到下一个分号(;)。在c#/VB中使用RegEx就可以了。
我认为这里最好使用HtmlAgilityPack
,因为可能在html中有一些这样的文本,而不是style
,如果html只是喜欢你的演示,你也可以使用下面的Regex来替换
font-family:[^;']*(;)?
这个样式也可以匹配不以;
结尾的样式,就像style='font-family: "Arial","sans-serif"'
如果你的html是在string
-变量htmlWithFont
,你可以这样做:
var htmkWithoutFont = Regex.Replace(htmlWithFont, "font-family:''s*'".*'";?", string.Empty);
另一个匹配font-family
而不匹配mso-bidi-font-family
的正则表达式:
(?<=;|"|'s)font-family:[^;']*(;)?
此模式只匹配font-family
,如果它是第一个样式属性,或者在
;
或空格