背景是这样的,我手上有一份统计表,需要将IP地址里的省市提取出来,以便于处理。因此我首先想到了Python里的正则表达式,打算写一个自定义函数去批量提取。然而之前没学VBA里的正则表达式语法,因此就去网上搜了一下,结果发现根本不能运行。几经辗转,总算搞定,因此总结一下,供后来者参考。
有几点说明:
1、我是先在 Python中验证了正则表达式再copy到VBA中应用的,结果发现根本不能用。可能VBA跟Python的正则表达式语法还是有点不同的。
2、还有属性submatches,此处不能写成“提取省市 = mat.Submatches.Item(0)”
编程目的:实现IP地址中省市信息的提取。
主要涉及的知识点:VBA函数、正则表达式
代码如下:
Function 提取省市(rng As Range, name)
Application.Volatile
Set regx = CreateObject("vbscript.regexp")
With regx
.Global = True
.Pattern = "[\u4e00-\u9fa5]+"