用于查找带有 src 到 Internet 的 HTML 图像标记的正则表达式模式
Regex pattern for finding HTML image tag with src to the internet
我在理解正则表达式模式语法时遇到一些问题。
我正在使用 Outlook interop
遍历 email.msg.
的 HTMLbody
我想删除所有引用互联网的图片。
所以我使用 Regex.Replace
来查找所有图像标签并将它们替换为文本。
这是什么,我已经:
string altText = " <i>*Reference to picture on the internet removed*</i> ";
string b = Regex.Replace(a, @"(<img([^>]+)>)", altText);
这行得通,但我想从互联网上找到只有 src
的标签。
我在 google 搜索中找到了这个:
string matchString = Regex.Match(a, "<img.+?src=[\"'](.+?)[\"'].*?>", RegexOptions.IgnoreCase).Groups[1].Value;
但这无济于事,因为看起来所有图像都有 src
标签。我的目标是尽可能在 Regex
中编写模式语法,我会在其中检查源 ( src
) 是否以 http、https 或 www 开头。
有没有人可以帮我解决这个问题?
我建议使用 HTML 解析器来查找您的图片标签,而不是直接使用正则表达式。然后,如果需要,您可以使用正则表达式来检查 src 属性。
与此同时,我相信以下正则表达式会产生您期望的结果:
<img.+?src=[\"']((?:https?|www).*)[\"'].*?>
正则表达式案例:Regex
编辑
还需要注意的是,有时链接可以仅以 //
开头。以下正则表达式应该这样做:
<img.+?src=[\"']((?:https?|www|//).*)[\"'].*?>
有关匹配 URL 的更广泛的 Regex 解决方案,请参阅 What is a good regular expression to match a URL?
我在理解正则表达式模式语法时遇到一些问题。
我正在使用 Outlook interop
遍历 email.msg.
HTMLbody
我想删除所有引用互联网的图片。
所以我使用 Regex.Replace
来查找所有图像标签并将它们替换为文本。
这是什么,我已经:
string altText = " <i>*Reference to picture on the internet removed*</i> ";
string b = Regex.Replace(a, @"(<img([^>]+)>)", altText);
这行得通,但我想从互联网上找到只有 src
的标签。
我在 google 搜索中找到了这个:
string matchString = Regex.Match(a, "<img.+?src=[\"'](.+?)[\"'].*?>", RegexOptions.IgnoreCase).Groups[1].Value;
但这无济于事,因为看起来所有图像都有 src
标签。我的目标是尽可能在 Regex
中编写模式语法,我会在其中检查源 ( src
) 是否以 http、https 或 www 开头。
有没有人可以帮我解决这个问题?
我建议使用 HTML 解析器来查找您的图片标签,而不是直接使用正则表达式。然后,如果需要,您可以使用正则表达式来检查 src 属性。
与此同时,我相信以下正则表达式会产生您期望的结果:
<img.+?src=[\"']((?:https?|www).*)[\"'].*?>
正则表达式案例:Regex
编辑
还需要注意的是,有时链接可以仅以 //
开头。以下正则表达式应该这样做:
<img.+?src=[\"']((?:https?|www|//).*)[\"'].*?>
有关匹配 URL 的更广泛的 Regex 解决方案,请参阅 What is a good regular expression to match a URL?