【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
代码运行过程演示
相关推荐
Eiceblue1 分钟前
通过Python 在Excel工作表中轻松插入行、列
开发语言·vscode·python·pycharm·excel
无影无踪的青蛙8 分钟前
[C++]洛谷B3626 跳跃机器人(题干 + 详细讲解, BFS练习题)
开发语言·c++·算法·bfs·广度优先
江畔柳前堤15 分钟前
PyQt学习系列11-综合项目:多语言文件管理器
开发语言·网络·python·学习·django·pyqt
君莫愁。17 分钟前
【Unity】使用InputSystem实现UI控件与键盘输入绑定以及如何快速制作虚拟摇杆
开发语言·unity·c#·游戏引擎·input system·输入系统
眠修24 分钟前
Python 实现web请求与响应
开发语言·python
三三十二25 分钟前
Matlab实战训练项目推荐
开发语言·matlab
kyle~37 分钟前
C/C++---隐式显式转换
c语言·开发语言·c++
四谷夕雨40 分钟前
C++八股 —— 手撕定时器
开发语言·c++
Java永无止境1 小时前
JAVASE:常见的算法
java·开发语言·数据结构·算法·排序算法
2301_815357701 小时前
Maven:在原了解基础上对pom.xml文件进行详细解读
java·开发语言·数据库