VBA中的正则表达式(四)
——Replace和Test方法
一、Replace方法
1. Replace作用
将文本中的某一串符合正则表达式规则的文本替换成新的文本。
2. Replace用法
代码 | .Replace(string1,string2) |
---|---|
string1 | 最初的字符串,原文本。下面案例中的参数为mytxt |
string2 | 新的字符串,替换掉原文本后,将以此文本覆盖。下面案例中的参数为newword |
该方法会返回一个新的、替换后的文本。
如果字符串中没有找到符合正则表达式规则的文本,则不发生匹配,返回原始的字符串(string1)
3. Replace案例
Sub regular_study()
'创建正则表达式对象,并命名为re
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
With re
.Global = True '匹配字符串中,所有与正则表达式规则相符的地方
.IgnoreCase = False '匹配时区分大小写
'mytxt为案例的文本
mytxt = "欢迎学习HiMacroSpider正则表达式系列课程!"
.Pattern = "\w+" '设置需要查找文本的特征(多个字母),找到“HiMacroSpider”字符
newword = "宏蜘蛛"
newtxt = .Replace(mytxt, newword) '将原文本中的“HiMacroSpider”,替换成“宏蜘蛛”
Debug.Print "替换前文本:" & mytxt
Debug.Print "替换后文本:" & newtxt
End With
End Sub
4. Replace案例输出结果↓
替换前文本:欢迎学习HiMacroSpider正则表达式系列课程!
替换后文本:欢迎学习宏蜘蛛正则表达式系列课程!
从输出结果可以看出,Replace
方法根据Pattern
处设置的正则表达式规则,找到原文本中的“HiMacroSpider”字符,然后将其替换为新字符“宏蜘蛛”,并返回替换后的最新字符串newtxt
。
二、Test方法
1. Test作用
判断某一字符串中是否含有正则表达式规则的字符串,如果含有,则返回True
;如果不含有则返回False
。
2. Test用法
代码 | .test(string) |
---|---|
string | 需要判断的字符串 |
3. Test案例
Sub regular_study_test()
Set re = CreateObject("VBScript.RegExp")
With re
.Pattern = "^\([0-9]{3}\)[0-9]{3}-[0-9]{4}" '设置电话格式,^表示(需要在字符串开头
.Global = True
.IgnoreCase = True
s = "(123)123-1234"
If .test(s) Then
Debug.Print s & "符合格式要求!"
Else
Debug.Print s & "不符合格式要求!"
End If
End With
End Sub
4. Test案例输出结果↓
(123)123-1234符合格式要求!
三、总结
1. Replace方法总结
根据
Pattern
属性设置的规则,从目标文本中,找到符合规则的部分,并将此部分替换为新的字符串。
2. Test方法总结
根据
Pattern
属性设置的规则,判断目标文本中是否有符合规则的字符串,如有则返回True
,如无则返回False
。
- 本文章,首发于微信公众号:宏蜘蛛,原文链接:VBA中的正则表达式(四)