(十五)VBA常用基础知识:正则表达式的使用

  1. vba正则表达式的说明
项目 说明
Pattern 在这里写正则表达式,例:[\d]{2,4}
IgnoreCase 大小写区分,默认false:区分;true:不区分
Global true:全体检索;false:最小匹配
Test 类似perl正则前的m,匹配项目
Replace 类似perl正则前的s,替换项目
Execute 类似java的matcher,然后能取出里边的group1,group2,group3;或者perl里匹配的各个括号的值

※正则表达式怎么写,这里不做说明,我是做perl的时候看了那本骆驼书然后顿悟的,以前特别怕写正则,现在还挺喜欢写的,特别是用正则解决了问题后

2.Test的用法

vbnet 复制代码
Sub test()
    Dim RE  As String
    Dim patt As String
    Set RE = CreateObject("VBScript.RegExp")
    pattern = "[0-9]{2,4}"
    With RE
        .pattern = patt
        .IgnoreCase = True
        .Global = True
        If .test("word1234aa") Then
            Debug.Print "11111"
        Else
            Debug.Print "22222"
        End If
        If .test("word4aa") Then
            Debug.Print "33333"
        Else
            Debug.Print "44444"
        End If
    End With
    Set RE = Nothing
End Sub

执行结果:

原因:没有引正则的包

很遗憾,macos vba无法使用正则,因为没有正则的引用

但是上边我写的正则匹配应该是没问题的

3.Replace的用法

vbnet 复制代码
Sub test()
    Dim RE As String
    Set RE = CreateObject("VBScript.RegExp")
    With RE
        .pattern = "[0-9]{2,4}"
        .IgnoreCase = False
        .Global = True
    End With
    Dim str As String, ret As String
    str = "I love you 123"
    ret = RE.Replace(str, "zy")
    Debug.Print ret
    Set RE = Nothing
    '输出结果:I love you zy
End Sub

4.Execute的用法

vbnet 复制代码
Sub test()
    Dim RE, patt As String, pmatch
    Set RE = CreateObject("VBScript.RegExp")
    patt = "I love ([\d]+) and ([\d]+)"
    With RE
        .pattern = patt
        .IgnoreCase = True
        .Global = True
         Set pmatch = .Execute("I love 123 and 456")
         If pmatch.Count > 0 Then
            Debug.Print pmatch(0) & "======" & pmatch(1)
         End If
    End With
    Set pmatch = Nothing
    Set RE = Nothing
End Sub
相关推荐
xyq20249 小时前
Redis 哈希(Hash)
开发语言
fffzd9 小时前
C++入门(一)
开发语言·c++·命名空间·输入输出·缺省参数
小妖同学学AI9 小时前
架构图即代码:GitHub星标41.9k的Diagrams,用Python解放你的画图生产力
开发语言·python·github
jinanwuhuaguo9 小时前
(第三十六篇)OpenClaw 去中心化的秩序——从“中心调度”到“网格自治”的治理革命
java·大数据·开发语言·网络·docker·去中心化·github
郝学胜-神的一滴9 小时前
Python 鸭子类型:优雅的多态哲学,让代码更自由
linux·服务器·开发语言·python·网络协议
小龙报9 小时前
【必装软件】python及pycharm的安装与环境配置
开发语言·人工智能·python·语言模型·自然语言处理·pycharm·语音识别
星辰徐哥9 小时前
Python 基础与环境配置
开发语言·python
shughui9 小时前
2026年最新版Python安装和PyCharm安装教程(图文详细 附安装包)
开发语言·windows·python·pycharm·编辑器
长得不合法9 小时前
第一模块:python快速入门
开发语言·python
草莓熊Lotso9 小时前
Python 入门必吃透:函数、列表与元组核心用法(附实战案例)
大数据·服务器·开发语言·c++·人工智能·python·qt