VBA 正则表达式 资料整理
创建正则表达式
正则表达式(Regular Expression),常被用来检验、替换符合某个模式(规则)的字符串,在代码中常缩写为 regexp
。
VBA中并没有直接提供正文表达式对象,需要借助 VBScript
的正则对象。
1. 前期引用
如果使用前期绑定,那么就需要在VBE中引用如下扩展库。
2. 后期引用
也可以使用后期绑定的方式创建正则对象,代码如下。
Set objRegExp = CreateObject("vbscript.regexp")
附常用属性代码
'--以下为属性参数设置示例---------------
With objRegExp
.Global = True '指明多次匹配
.IgnoreCase = True '不区分大小写
.MultiLine = True '每行一个行首行尾
.Pattern = "regexpSting" '正则表达式
End With
'--以下为方法返回值示例 一 ---------------
With objRegExp
Set objMatches = .Execute(Str) '返回一个 Matches 集合
If .test(Str) Then '如果匹配成功则执行
Debug.Print .Replace(Str, "NewString") '替换文本
Debug.Print .Execute(Str).Count '集合中Match的数量 —— 即匹配到的字
符串的数量
Debug.Print objMatches.Count '同上一行
End If
End With
'-- Match 对象的属性 ---------------
set Match = objMatches(0) '赋值第一个匹配的对象给 Match
with Match
Debug.Print .FirstIndex '匹配到 首字符位置
Debug.Print .Length '匹配到 字符长度
Debug.Print .Value '匹配到 字符内容
end with
'--以下为方法返回值示例---------------
With objRegExp
Set obj