vba 正则表达式_再谈VBA正则表达式中MatchCollection对象!

我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!

昨天我们已经讲过了正则表达式中分组和不分组的情况下匹配的结果的区别,今天我们再来剖析下分组后的执行结果MatchCollection对象。

还是昨天的案例:

5144385290e19702307f2a2a4f3ea05b.gif

我们看下本地窗口:

adacad0610ab39d45f40e9e3621573d6.png

mat对象集合有count、item、value三个属性。

664d3ba037cd75d22eb013d0fafb1b0c.png

同样,SubMatche集合也有count、item、value三个属性,就像父子关系一样,SubMatche是mat的儿子。

这些属性都是可以利用的。

代码如下:

Sub 提取3()

Dim regx As Object, mat, m, n%

Set regx = CreateObject("vbscript.regexp")

With regx

.Global = True

.Pattern = "(\d+)\.?([一-龢]+)"

Set mat = .Execute([a1])

For n = 0 To mat.Count - 1

Cells(n + 3, 2) = mat(n).submatches(0)

Cells(n + 3, 3) = mat(n).submatches(1)

Next

End With

End Sub

红色部分的含义:直接执行完正则表达式后,mat.count表示匹配成功的条数,所以直接利用一个循环,从0循环到mat.count-1就可以把所有匹配到的内容循环出来,每循环一次就循环出一个item,mat(0)代表mat下面的第一个item,然后mat(n).submatches(0)就表示mat中第一个条目下,submatches中的第一个item的值。

大家可以通过对比图片和代码来理解。

通过本节我们对分组又有了更深的了解。

本节的分享就到这里,鹏哥祝大家每天都有进步。

聚米为谷

博学宏才

如果对VBA感兴趣

手机端请扫描

d6e4b098c73d2013ab237a26e3cc07ce.png

电脑端请登录

www.mihong.top

找到《带你走进VBA的世界》

跟着我一步步学习VBA

本节的分享就到这里,鹏哥祝大家每天都有进步。 34e66130d1891f7d1dd233ebf5f2229d.gif 您点的每个赞,我都认真当成了喜欢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值