打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
从论坛网友回复中提取出邮箱地址 | VBA实例教程

除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www.zhanzhanrufeng.com/cat3/462.html,VBA交流群273624828。

上节介绍了正则表达式的基本用法,手上有一个现成的提取邮箱的例子先拿来让大家看一下。要下载的是天涯论坛http://bbs.tianya.cn/post-766-99240-11.shtml这个帖子回复中的邮箱地址。这种情况比较常见,经常有网友的论坛上分享一些资源,让需要的网友留下邮箱,如果太多了提取邮箱就是个问题,这次拿这个例子来说明一下。

这个网页当然是要先网抓把内容抓出来,再用正则表达式将邮箱地址取出来,邮箱匹配模式是"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*",具体意思对照正则表达式的规则自己慢慢研究,这是网友们长期总结下来的一个方法,我也是直接拿来就用了。下面看代码

Sub test()
Dim winhttp As Object, tt$, reg As Object, m, mc, i, brr
Set winhttp = CreateObject("WinHttp.WinHttpRequest.5.1")
Set reg = CreateObject("VBSCRIPT.REGEXP")
With winhttp
.Open "GET", "http://bbs.tianya.cn/post-766-99240-11.shtml", False
tt = .responsetext
End With
With reg
.Global = True
.IgnoreCase = True
.Pattern = "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
End With
Set mc = reg.Execute(tt)
ReDim brr(1 To mc.Count)
For i = 0 To mc.Count - 1
brr(i + 1) = mc.Item(i).Value
Next
Range("a1").Resize(mc.Count, 1) = Application.Transpose(brr)
Set winhttp = Nothing
Set reg = Nothing
End Sub

正则表达式的Execute方法就是将所有符合匹配模式的字符串放到一个对象mc中,不是数组但是差不多的意思,取mc中某个项的值要用mc.item(i).value。

这个例子先看着,之后我会慢慢补充些正则表达式的内容。

这节没附件,自己复制代码就好了。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
随手VBA之商品分离
vba80集第39集正则表达式3
VBA抓取规划局规划公示
​想保留包含如下字样的行,其它行删除,怎么用VBA实现
给学习Excel VBA数组的人,一点点自己学习的心得
学习VBA,报表做到飞 第四章 正则表达式 4.3 正则表达式的方法和属性
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服