- 系统环境:Windows 10
- Excel:2010版本
想提取字符串内特定信息怎么办?
正则表达式,Regular Expression,了解一下
Part 1:概念介绍
- 正则表达式,是一种字符串搜索技术,在很多不同的语言中都存在
- 例如字符串qwer23yhg2ng23gbf,提取其中的数字
Part 2:VBA中如何使用正则表达式
- 正则表达式,类似于FSO,需要后期创建引用才可以使用(前期绑定这里不介绍了)
set myReg=CreateObject("VBSCRIPT.REGEXP")
- 主要含有3个参数,Global,IgnoreCase,Pattern
- Global表示是否全局匹配,取值True,False。False只匹配第一个
- IgnoreCase是否区分大小写
- Pattern最关键的参数,采用何种方式匹配
Part 3:代码
Sub test()
S = "qwer23yhg2ng23gbf"
Set myReg = CreateObject("VBSCRIPT.REGEXP")
With myReg
.Pattern = "D"
.Global = True
.IgnoreCase = True
NewS = .Replace(S, "")
End With
Debug.Print ("NewS=" & NewS)
End Sub
图1 代码截图及执行结果
Part 4:部分代码解读
- “D”匹配所有非数字
- myReg.replace(待替换的字符串,替换满足Pattern规则的字符)
以上,为本次的介绍内容,下回见。
本文首发于微信公众号:Excel高效办公之VBA。排版和细节略作修改,发于头条
