WPS 好用的REGEXP正则函数用法详解!

WPS 好用的REGEXP正则函数用法详解!

 

REGEXP函数语法如下图所示。

 

006fRELkly4i6l91shpidj30hm0c6n16

 

 

一、提取模式

示例1、提取汉字

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

 

20251022090

 

示例2、提取字母

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

 

20251022091

 

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

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

 

20251022092

 

二、判断模式

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

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

 

20251022093

 

三、替换模式

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

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

 

20251022094

 

 

四、零宽断言

示例6、提取金额

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

 

20251022095

 

 

示例7、提取手机号

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

 

20251022096

 

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

 

20251022097

 

五、分组匹配

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

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

 

20251022098

 

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")

 

20251022099

 

正则表达式分为3组

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

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

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

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

 

 

六、非贪婪模式

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

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

 

20251022100

 

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

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

 

20251022101

 

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

 

 

七、综合示例

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

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

 

 

20251022102

 

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

=REGEXP(A2,".")

 

20251022103

 

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

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

 

20251022104

 

八、其他说明

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

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

 

20251022105

 

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

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

 

20251022106

 

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

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

=TOROW(VSTACK(REGEXP(A2,"[一-龟]+"),REGEXP(A2,"[A-z]+"),REGEXP(A2,"(?<=[a-z])\d+")),,1)

 

20251022107

 

学习这个新函数吧。

 

快来试试吧。

 

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

 

 

 

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

Excelbook.cn Excel技巧 SQL技巧 Python 学习!

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需129元,即可下载本站文章涉及的文件和软件。

文章版权声明 1、本网站名称:Excelbook
2、本站永久网址:http://www.excelbook.cn
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长王小琥进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

THE END
分享
二维码
< <上一篇
下一篇>>