正则表达式获取src包含文本的img标签
Regular Expression to get img tag where src contains text
使用 VB.net,我有一个包含 HTML 的字符串。 HTML 中有几个 img 标签。我正在尝试根据包含特定字符 (image002) 的 src 获取整个特定的 img 标签,以便我可以用一些新代码替换整个图像标签。
我目前拥有的:
dim bodyContent as string = "<html><body><img src='image001.png'/><img src='image002.png'/></body></html>"
dim searchStr as string = "image002"
Dim imgRegex As New Regex("@""<img.*?src=""(?" & searchStr & ".*?)"".*?>""", RegexOptions.IgnoreCase)
bodyContent = imgRegex.Replace(bodyContent, "<div class='newCode'><a href='https://mywebsite.net/ViewAttachment'><img src='https://mywebsite.net/ViewThumbnail'></a></div>")
但是,我的正则表达式不正确。关于获得正确的 RegEx 的任何建议?
您可以使用
Dim imgRegex As New Regex("<img[^>]+" & searchStr & "[^>]*>", RegexOptions.IgnoreCase)
正则表达式匹配
<img
- <img
字符串
[^>]+
- >
以外的一个或多个字符
& searchStr &
- searchStr
中的文字文本(注意它在这里是这样工作的,因为变量只包含单词字符,在一般情况下,您需要使用 [=19= 转义它])
[^>]*>
- >
以外的零个或多个字符,然后是 >
个字符。
完整 VB.NET demo:
Dim bodyContent as string = "<html><body><img src='image001.png'/><img src='image002.png'/></body></html>"
Dim searchStr as string = "image002"
Dim imgRegex As New Regex("<img[^>]+" & searchStr & "[^>]*>", RegexOptions.IgnoreCase)
bodyContent = imgRegex.Replace(bodyContent, "<div class='newCode'><a href='https://mywebsite.net/ViewAttachment'><img src='https://mywebsite.net/ViewThumbnail'></a></div>")
Console.Write(bodyContent)
输出:
<html><body><img src='image001.png'/><div class='newCode'><a href='https://mywebsite.net/ViewAttachment'><img src='https://mywebsite.net/ViewThumbnail'></a></div></body></html>
使用 VB.net,我有一个包含 HTML 的字符串。 HTML 中有几个 img 标签。我正在尝试根据包含特定字符 (image002) 的 src 获取整个特定的 img 标签,以便我可以用一些新代码替换整个图像标签。
我目前拥有的:
dim bodyContent as string = "<html><body><img src='image001.png'/><img src='image002.png'/></body></html>"
dim searchStr as string = "image002"
Dim imgRegex As New Regex("@""<img.*?src=""(?" & searchStr & ".*?)"".*?>""", RegexOptions.IgnoreCase)
bodyContent = imgRegex.Replace(bodyContent, "<div class='newCode'><a href='https://mywebsite.net/ViewAttachment'><img src='https://mywebsite.net/ViewThumbnail'></a></div>")
但是,我的正则表达式不正确。关于获得正确的 RegEx 的任何建议?
您可以使用
Dim imgRegex As New Regex("<img[^>]+" & searchStr & "[^>]*>", RegexOptions.IgnoreCase)
正则表达式匹配
<img
-<img
字符串[^>]+
->
以外的一个或多个字符
& searchStr &
-searchStr
中的文字文本(注意它在这里是这样工作的,因为变量只包含单词字符,在一般情况下,您需要使用 [=19= 转义它])[^>]*>
->
以外的零个或多个字符,然后是>
个字符。
完整 VB.NET demo:
Dim bodyContent as string = "<html><body><img src='image001.png'/><img src='image002.png'/></body></html>"
Dim searchStr as string = "image002"
Dim imgRegex As New Regex("<img[^>]+" & searchStr & "[^>]*>", RegexOptions.IgnoreCase)
bodyContent = imgRegex.Replace(bodyContent, "<div class='newCode'><a href='https://mywebsite.net/ViewAttachment'><img src='https://mywebsite.net/ViewThumbnail'></a></div>")
Console.Write(bodyContent)
输出:
<html><body><img src='image001.png'/><div class='newCode'><a href='https://mywebsite.net/ViewAttachment'><img src='https://mywebsite.net/ViewThumbnail'></a></div></body></html>