Regex 正则表达式从元素中完全删除html属性
我正在使用vb.net,我的数据库正在返回一个类似这样的字符串,其中包含一个非常长的title属性,我希望删除该属性:Regex 正则表达式从元素中完全删除html属性,regex,vb.net,Regex,Vb.net,我正在使用vb.net,我的数据库正在返回一个类似这样的字符串,其中包含一个非常长的title属性,我希望删除该属性: <img title="3497fh-39848f-04ghk38-483728_part1__book1_93822-3948329928" 试试这个Regex。。。有关此Regex的更多信息,请参阅 <?(title)="[^"]*" 只有在语法不正确且没有其他库可以处理的情况下,才应该使用正则表达式来处理HTML 使用(安装NuGet软件包),您可以轻松
<img title="3497fh-39848f-04ghk38-483728_part1__book1_93822-3948329928"
试试这个Regex
。。。有关此Regex
的更多信息,请参阅
<?(title)="[^"]*"
只有在语法不正确且没有其他库可以处理的情况下,才应该使用正则表达式来处理HTML
使用(安装NuGet软件包),您可以轻松获得所有a
标记,并从中删除title
属性,如下所示:
Dim s = "<img title=""3497fh-39848f-04ghk38-483728_part1__book1_93822-3948329928"">"
Dim doc As HtmlDocument = New HtmlDocument()
doc.LoadHtml(s)
RemoveAttributeFromTag(doc, "title")
Debug.Print(doc.DocumentNode.OuterHtml)
这将打印
:
最后解决办法是
Private Sub RemoveAttributeFromTag(html As HtmlDocument, AttName As String)
Dim elements = html.DocumentNode.SelectNodes("//@" + AttName)
For Each element In elements
element.Attributes.Remove(AttName)
Next
End Sub
Regex.Replace(str,”(?你确定不想使用HTML解析器来解析HTML?@Ryan我实际上已经安装了它。这会使删除title属性更容易吗?谢谢你想删除title标记及其之间的所有内容?@Zaggler是的,我希望它只是没有title属性的标记。
Private Sub RemoveAttributeFromTag(html As HtmlDocument, AttName As String)
Dim elements = html.DocumentNode.SelectNodes("//@" + AttName)
For Each element In elements
element.Attributes.Remove(AttName)
Next
End Sub
Regex.Replace(str, "(?<=<[_a-zA-Z][^<]*?)\s+style=""[^""]*""", "")