这是一个简单的案例:提取数字
前面我们也讲过用MID函数截取,编写公式很复杂。
今天我们用自定义正则函数来提取数字:
第一步:制作自定义正则函数
Function ExStr(Str As Range, Parttern As String, ActionID As Integer, Optional RepStr As String = "")
Dim regex As Object
Set regex = CreateObject("vbscript.regexp")
With regex
.Global = True
.IgnoreCase = True
.MultiLine = True
.Pattern = Parttern
End With
Select Case ActionID
Case 1:
ExStr = regex.Replace(Str, RepStr)
Case 2:
ExStr = regex.test(Str)
Case 3:
Dim matches As Object
Set matches = regex.Execute(Str)
For Each Match In matches
ExStr = ExStr & Match.Value
Next
End Select
End Function
这个自定义函数有4个参数:
要处理的单元格--第一参数
正则表达式------第二参数
处理选项:1--替换
2--判断
3--提取
---- 第三参数
分隔符号:默认是空白--第四参数
第二步:文件保存为启用宏的工作簿,就可以来测试这个函数
我们只用了3个参数:
第一个参数:文本列
第二个参数:“\d” 正则表达式中“\d"的含义是,匹配0-9的数字
第三个参数:选项1:将数字替换掉
选项2:判断文本中是否包含数字
选项3:提取数字
第四个参数:默认是”“
接下来就是要学习正则表达式了,这个需要各位自己去找资料学习。
正则表达式,在数据清洗工作中的作用是无可替代的。
这个自定义函数也可以作为学习正则表达式的工具
来测试自己写的正则表达式
领取专属 10元无门槛券
私享最新 技术干货