我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!
昨天我们已经讲过了正则表达式中分组和不分组的情况下匹配的结果的区别,今天我们再来剖析下分组后的执行结果MatchCollection对象。
还是昨天的案例:
我们看下本地窗口:
mat对象集合有count、item、value三个属性。
同样,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感兴趣
手机端请扫描
电脑端请登录
www.mihong.top
找到《带你走进VBA的世界》
跟着我一步步学习VBA
本节的分享就到这里,鹏哥祝大家每天都有进步。 您点的每个赞,我都认真当成了喜欢