Excel表格中REGEXP正则函数使用教程 点击使用AI助手 了解更多

发布于 2024-08-14 admin 2593 编辑

本文为转载:原文链接

4月24日,WPS版本号更新到了16894,此次更新共新增了12个函数,其中包含了7个LAMBDA类函数,4个WPS独有函数(其中ROUNDBANK函数为16729版本更新),2个其他类辅助函数,具体函数如下图所示。

我将分三天带大家了解新增函数的使用方法。

第1天:LAMBDA类函数

第2天:REGEXP正则函数

第3天:WPS独有函数

今天是第2天,分享REGEXP正则函数。

REGEXP函数语法如下图所示。

一、提取模式

示例1、提取汉字

=REGEXP(A2,"[一-龟]+")

示例2、提取字母

=REGEXP(A5,"[A-z]+")

示例3、提取数字(包含小数)

=REGEXP(A8,"\d+\.?\d*"

二、判断模式

示例4、判断是否为手机号

=REGEXP(A2,"^1[3-9]\d{9}$",1)

三、替换模式

示例5、替换[]中的汉字后计算

=EVALUATE(REGEXP(A2,"\[[一-龟]+\]",2))

四、零宽断言

示例6、提取金额

=REGEXP(A2,"\d+(?=元|块)")

示例7、提取手机号

=REGEXP(A5,"(?<=^|\D)1[3-9]\d{9}(?=\D|$)")

注意事项:预查不支持量词(如 *、+ 或 {n,m}),如下图所示

五、分组匹配

示例8、银行卡号每4位加空格

=REGEXP(A2,"(.{4})",2,"\1 ")

REGEXP函数不支持分组提取,支持分组替换,在写正则表达式时,可以使用括号将指定表达式进行分组,REGEXP函数第3个参数匹配模式,设置(2-替换),分组后使用REGEXP函数第4个参数替换内容,根据实际需求使用"\"加1~N序号,可以引用正则表达式指定组匹配到的内容,示例中的正则表达式规则为匹配任意连续4位内容,因正则表达式加了括号,所以替换内容中"\1"可以返回匹配到的第1组内容,然后加一个" "(空格)作为替换内容,即可实现每4位加空格。

示例9、删除日期

=REGEXP(A2,"([一-龟]+)(\d{4}年\d{1,2}月\d{1,2}日)(\d+[元,块])",2,"\1\3")

正则表达式分为3组

第1组:([一-龟]+) 匹配姓名

第2组:(\d{4}年\d{1,2}月\d{1,2}日) 匹配日期

第3组:(\d+[元,块]) 匹配金额

第4个参数替换内容,引用第1、3组匹配结果,即可实现将第2组匹配的日期删除。

六、非贪婪模式

示例10、提取括号中的内容

=REGEXP(A2,"\(.+?\)")

如果不需要返回括号,可以使用预查,将不会返回括号

=REGEXP(A5,"(?<=\().+?(?=\))")

当一个量词(如 *、+ 或 {n,m})之后紧跟一个问号 ?,如 *?、+? 或 {n,m}?,则该量词变为非贪婪模式。

七、综合示例

示例11、统计姓名出现次数(一个单元格内会多次出现)

=COLUMNS(REGEXP(CONCAT($A$2:$A$7&"-"),C2))

示例12、拆分身份证号(将字符串逐个拆分)

=REGEXP(A2,".")

示例13、手机号、姓名互换位置

=REGEXP(A2,"(\d{11})([一-龟]+)",2,"\2\1")

八、其他说明

REGEXP函数第1个参数不支持数组,但是第2个参数支持数组,如下图所示。

=REGEXP(A2,{"[一-龟]+","[A-z]+","\d+"})

通过示例我们可以发现,当REGEXP第2个参数为数组时,函数将返回数组中每个正则表达式匹配到的首个结果,和TEXTSPLIT函数当第1个参数为数组时,返回拆分后的首个结果一样,并且如果需要对返回的结果进行再次计算,需要做类似"降维"的操作(对REGEXP函数返回结果连接空文本),如下图所示。

=REGEXP(A2,{"[一-龟]+","[A-z]+","\d+"})&""

当数组中的正则表达式匹配到多个值时,无法进行"降维"操作,所以REGEXP函数第2个参数使用数组的限制还是比较大的,正常情况下第2个参数不建议使用数组。

提取多组可以使用以下公式

=TOROW(VSTACK(REGEXP(A2,"[一-龟]+"),REGEXP(A2,"[A-z]+"),REGEXP(A2,"(?<=[a-z])\d+")),,1)
通过本文的详细解析,您可以发现REGEXP函数在WPS表格中的广泛应用。不论是提取特定内容、替换字符、还是复杂的分组匹配,REGEXP都能为您提供强大的功能支持。掌握REGEXP函数,将使您在数据处理上如虎添翼,大幅提升工作效率。希望本文的教程能为您的数据处理工作提供实用的帮助和启发。
上一篇: Excel数据输入与管理操作指南
下一篇: Excel表格SPILL错误提示及处理
相关文章