【Excel 扩展正则的能力】工作中赋予处理单元格文本的强大正则表达提取能力

文本提取处理领域,正则表达式是最为强大的存在,工作中Excel 是常用的小型数据采集,处理,分析的工具但本身不具备正则的能力,让Excel拥有正则的能力无疑是如虎添翼的能力。

方案

让正则作为函数内容的一部分,给这类业务正则直接命名一个函数名称,调用时直接访问和Excel 系统函数一样简单

函数自定义
vbnet 复制代码
RegexExtract(rng As Range, ByVal Pattern As String, Optional MatchIndex As Integer = 0, Optional IgnoreCase As Boolean = True) 
参数名称 简介
rng 需要提取文本的单元格
Pattern 正则表达式规则字符串,备注:用户根据场景自定义,比如\d+,表示提取连续字符串
MatchIndex 单元格中匹配成立的字符串集合中,取第几个,起始索引为 0,默认为 0
IgnoreCase 匹配规则属性设置,是否区分大小写,True 区分,False 不区分
Function Code
vbnet 复制代码
' 提取字符串中符合正则规则的内容
Function RegexExtract(rng As Range, ByVal Pattern As String, Optional MatchIndex As Integer = 0, Optional IgnoreCase As Boolean = True) As String
    
'    on error resume next
    
    Dim regEx As Object, matches As Object
    Set regEx = CreateObject("VBScript.RegExp")
    
    With regEx
        .Pattern = Pattern
        .IgnoreCase = IgnoreCase
        .Global = True
    End With
    
    Set matches = regEx.Execute(rng.Value)
    If matches.Count > 0 Then
    
        If MatchIndex < 0 Or MatchIndex >= matches.Count Then
            RegexExtract = "Index out of range"
        Else
            RegexExtract = matches(MatchIndex).Value
        End If

        
    Else
    
        RegexExtract = "No match"
        
    End If
    
    Set regEx = Nothing
    
End Function
代码运行过程演示
相关推荐
梵得儿SHI10 分钟前
Java 反射机制深度剖析:性能与安全性的那些坑
java·开发语言·安全·反射·动态代理·性能·反射机制
fsnine16 分钟前
Python图形化界面——pyqt5教程
开发语言·python·qt
嵌入式-老费24 分钟前
Easyx图形库应用(和lua结合使用)
开发语言·lua
AsiaLYF25 分钟前
kotlin中MutableStateFlow和MutableSharedFlow的区别是什么?
android·开发语言·kotlin
Asuncion00736 分钟前
Docker核心揭秘:轻量级虚拟化的革命
服务器·开发语言·docker·云原生
深思慎考1 小时前
RabbitMQ 入门:基于 AMQP-CPP 的 C++ 实践指南与二次封装
开发语言·c++·分布式·rabbitmq·api
catchadmin1 小时前
PHP8.5 的新 URI 扩展
开发语言·后端·php
似水流年 光阴已逝2 小时前
从Excel姓名匹配案例学Python:由点及面的系统化学习指南
开发语言·python·excel
重生之我要当java大帝2 小时前
java微服务-尚医通-管理平台前端搭建-医院设置管理-4
java·开发语言·前端
Q_Q19632884752 小时前
python+vue的在线租房 房屋租赁系统
开发语言·vue.js·spring boot·python·django·flask·node.js