VBA中正则表达式分组后结果的利用

论坛 期权论坛 期权     
米宏Office   2019-7-20 10:04   4995   0
我的目标:让中国的大学生走出校门的那一刻就已经具备这些Office技能,让职场人士能高效使用Office为其服务。支持鹏哥,也为自己加油!

昨天我们已经讲过了正则表达式分组和不分组的情况下匹配的结果的区别,今天我们再对分组后的一些属性进行研究。

还是昨天的案例:





我们看下本地窗口:






mat集合下面有count、item、value三个属性。




同样,submatches集合也有count、item、value三个属性,就像父子关系一样,submatches是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的值。

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

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

今天的分享就到这里了!大家可以在留言区进行交流!

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

加入米宏Office培训群,每天进步一点点!
从基础操作到VBA,
两杯咖啡的钱,
换取一份如此详细的Excel视频资料,
你还在犹豫?
欲购从速,联系微信号:527240310
非诚勿扰!
每天进步一点,每天提升一点!
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:75
帖子:15
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP