文章摘要
这篇文章介绍了如何使用自定义函数`RegImg`来提取网页中图片标签中的`src`属性。函数通过正则表达式匹配匹配的字符串,并返回所有匹配的`src`值。首先,定义了一个正则表达式对象`RegEx`,并设置其属性`IgnoreCase`为`True`以忽略大小写差异,`Global`为`True`以匹配整个字符串。然后,将正则表达式模式定义为匹配图片标签中的`<img>`标签,并提取`src`属性。通过`RegEx.test`判断是否存在匹配,`RegEx.Execute`执行搜索并获取匹配结果。最后,遍历匹配结果,提取并合并`src`值到`RetStr`中。整个过程围绕使用正则表达式提取网页中的图片源地址展开。
Function RegImg(TheStr)
Dim RegEx
Set RegEx = New RegExp ‘建立正则表达对象。
RegEx.IgnoreCase =True ‘ 是否区分大小写,True为不区分且默认
RegEx.Global = True ‘全部匹配还是只匹配第一个
RegEx.Pattern = “<img[^>]*src\s*=\s*[‘”&CHR(34)&”]?([\w/\-\:.]*)[‘”&CHR(34)&”]?[^>]*>” ‘ 搜索所使用的正则表达式
If Regex.test(TheStr) Then ‘ 判断是否有匹配值,返回True或者False。不受Global属性影响。
Dim Matches
Set Matches = RegEx.Execute(TheStr) ‘ 执行搜索。Execute 方法返回一个Matches 集合,其中包含了在 TheStr 中找到的每一个匹配的 Match 对象。如果未找到匹配,Execute 将返回空的 Matches 集合。
For Each Match in Matches ‘ 遍历匹配集合。
‘RetStr = RetStr & Match.Value & “<br />” ‘获取整个img
RetStr = RetStr & Match.SubMatches(0)&”||” ‘只取src
Next
RegImg = RetStr
End If
End Function
Function RegImg(TheStr)
Dim RegEx
Set RegEx = New RegExp ‘建立正则表达对象。
RegEx.IgnoreCase =True ‘ 是否区分大小写,True为不区分且默认
RegEx.Global = True ‘全部匹配还是只匹配第一个
RegEx.Pattern = “<img[^>]*src\s*=\s*[‘”&CHR(34)&”]?([\w/\-\:.]*)[‘”&CHR(34)&”]?[^>]*>” ‘ 搜索所使用的正则表达式
If Regex.test(TheStr) Then ‘ 判断是否有匹配值,返回True或者False。不受Global属性影响。
Dim Matches
Set Matches = RegEx.Execute(TheStr) ‘ 执行搜索。Execute 方法返回一个Matches 集合,其中包含了在 TheStr 中找到的每一个匹配的 Match 对象。如果未找到匹配,Execute 将返回空的 Matches 集合。
For Each Match in Matches ‘ 遍历匹配集合。
‘RetStr = RetStr & Match.Value & “<br />” ‘获取整个img
RetStr = RetStr & Match.SubMatches(0)&”||” ‘只取src
Next
RegImg = RetStr
End If
End Function
© 版权声明
文章版权归作者所有,未经允许请勿转载。