VBA中的正则表达式(四)

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中的正则表达式(四)

你可能感兴趣的:(正则表达式)