vba-正则表达式(创建,使⽤和属性⽅法)'⼀正则表达式
'正则表达式是处理字符串的外部⼯具,它可以根据设置的字符串对⽐规则,进⾏字符串的对⽐、替换等操作。
'正则表达式的作⽤:
'1、完成复杂的字符串判断
'2、在字符串判断时,可以最⼤限度的避开循环,从⽽达到提⾼运⾏效率的⽬的。
'⼆使⽤⽅法
'1、引⽤法
'点击VBE编辑器菜单:⼯具 - 引⽤,选取: Microsoft VBScript Regular Expressions 5.5,引⽤后在程序开始进⾏如下声明 'Dim regex As New RegExp
Sub t1()
Dim reg As New RegExp
End Sub
'2、直接他建法
' 代码引⽤ (后期绑定)
' Dim regex As Object
' Set regex = CreateObject("VBScript.RegExp") '创建正则对象
三常⽤属性
'1 Global属性:
'如果值为true,则搜索全部字符
'如果值为False,则搜索到第1个即停⽌
'1 例:
Sub t3()
Dim reg As New RegExp
Dim sr
sr = "ABCEA"
With reg
.Global = True
.Pattern = "A"
vba计算字符串长度Debug.Print .Replace(sr, "")
End With
End Sub
'2 IgnoreCase 属性
'如果搜索是区分⼤⼩写的,为False(缺省值)True不分
'3 Pattern 属性
' ⼀个字符串,⽤来定义正则表达式。缺省值为空⽂本。
'4 Multiline 属性,字符串是不是使⽤了多⾏,如果是多⾏,$适⽤于每⼀⾏的最后⼀个
Sub t4()
Dim reg As New RegExp
Dim sr
sr = "AEA" & Chr(10) & "ABCA"
With reg
.Global = True
.MultiLine = True
'.Pattern = "A$"
.
Pattern = "^A"
Debug.Print .Replace(sr, "")
End With
End Sub
'5 Execute ⽅法
'返回⼀个 MatchCollection 对象,该对象包含每个成功匹配的 Match 对象,
'返回的信息包括:
'FirstIndex:开始位置
'Length; 长度
'Value:长度
Sub t5()
Dim reg As New RegExp
Dim sr, matc
sr = "A454BCEA5"
With reg
.Global = True
.Pattern = "A\d+"
Set matc = .Execute(sr)
End With
Stop
End Sub
Function ns(rg)
Dim reg As New RegExp
Dim sr, ma, s, m, x
With reg
.Global = True
.Pattern = "\d*\.?\d*"
Set ma = .Execute(rg)
For Each m In ma
s = s + Val(m)
Next m
End With
ns = s
' Stop
End Function
6、Text⽅法
'返回⼀个布尔值,该值指⽰正则表达式是否与字符串成功匹配。其实就是判断两个字符串是否匹配成功 Sub t7()
Dim reg As New RegExp
Dim sr
sr = "BCR6EA"
With reg
.Global = True
.Pattern = "\d+"
If .test(sr) Then MsgBox "字符串中含有数字"
End With
End Sub
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论