【WPS功能分享】WPS表格-图解新版REGEXP正则函数匹配模式(通俗易懂)
创作者俱乐部成员
在2024年7月16日晚,WPS64位内测版本迎来了新版本更新12.1.0.17726,其中一个更新亮点就是更新了REGEXP正则函数,下面我们简单分享一下~
更新亮点
第一参数(原始字符串)与第二参数(正则表达式)支持数组输入
第三参数(匹配模式)新增【3-完整提取】
亮点分享
亮点分析
第一参数为数组时,匹配模式【0-提取】与【3-完整提取】的区别
公式
下图展示对于相同数组,相同正则表达式下,匹配模式【0-提取】与【3-完整提取】的表面显示结果,从下图可以看出,如果从表面看输出结果,直接输出的情况下匹配模式无论是【0-提取】还是【3-完整提取】结果都是一样,那实际它们是不是一样呢?答案显然不是,如果结果都一样就没有必要增加【3-完整提取】匹配模式了~
实际上当匹配模式选择【3-完整提取】时,它实质上是一个多维数组(针对第一参数是二维数组时,其输出结果就是三维数组)~那如何证明匹配模式选择【3-完整提取】时,输出结果是一个多维数组呢?那就要借助我们的MAP函数和LAMBDA函数以及大家熟悉的INDEX函数了~
由上图可以看出当匹配模式为【0-提取】时,它实质就是我们所看见的样子;而当匹配模式为【3-完整提取】时,它虽然表面展示与前者一样,但实际上它返回的是一个多维数组(这里是三维数组)~
🔔 | 下面动图展示各个区域的公式情况~ |
图解
以上文为例,当匹配模式为【3-完整提取】实际效果如下所示~
🔔 | 其中 数组1 -- REGEXP($A$8:$B$12,"[0-9]+",3) 数组2 -- MAP(REGEXP($A$8:$B$12,"[0-9]+",3),LAMBDA(x,INDEX(x,2))) 数组3 -- MAP(REGEXP($A$8:$B$12,"[0-9]+",3),LAMBDA(x,INDEX(x,3))) |
当匹配模式为【0-提取】实际效果如下所示~
💡 | 重点笔记: 当第一参数为数组,第二参数为非数组时,以上文例子举例MAP(REGEXP($A$8:$B$12,"[0-9]+",3),LAMBDA(x,INDEX(x,2)))的结果与MAP(REGEXP($A$8:$B$12,"[0-9]+",3),LAMBDA(x,INDEX(x,,2)))一致,动图展示如下~ |
第一参数与第二参数均为数组时,匹配模式为【3-完整提取】
公式
使用如下函数展示均为数组的情况~
REGEXP($A$15:$B$19,{"[0-9]+","[A-Z]+"},3)
MAP(REGEXP($A$15:$B$19,{"[0-9]+","[A-Z]+"},3),LAMBDA(x,INDEX(x,2)))
MAP(REGEXP($A$15:$B$19,{"[0-9]+","[A-Z]+"},3),LAMBDA(x,INDEX(x,3)))
图解
🔔 | 总结:从上文测试可知,只要匹配模式选择【3-完整提取】,展示底层逻辑都是相似,无论第一参数和第二参数是否为数组~ |
以上简单地说了关于匹配模式的情况,其他有关第一参数与第二参数均为数组时的运算规则请参考官方技术的帖子~
WPS版本
WPS64位内测版(12.1.0.17726-release)
系统版本
Windows11
相关参考帖子
新版REGEXP函数教程 https://bbs.wps.cn/topic/37802
WPS64位介绍帖子
【WPS新版探索】带你走进WPS64位内测版(一起寻找内测版彩蛋) https://bbs.wps.cn/topic/37778