Excel表格中REGEXP正则函数使用教程 点击使用AI助手 了解更多
发布于 2024-08-14 admin 2593 编辑
本文为转载:原文链接
4月24日,WPS版本号更新到了16894,此次更新共新增了12个函数,其中包含了7个LAMBDA类函数,4个WPS独有函数(其中ROUNDBANK函数为16729版本更新),2个其他类辅助函数,具体函数如下图所示。
我将分三天带大家了解新增函数的使用方法。
第2天:REGEXP正则函数
第3天:WPS独有函数
今天是第2天,分享REGEXP正则函数。
REGEXP函数语法如下图所示。
一、提取模式
示例1、提取汉字
示例2、提取字母
示例3、提取数字(包含小数)
二、判断模式
示例4、判断是否为手机号
三、替换模式
示例5、替换[]中的汉字后计算
四、零宽断言
示例6、提取金额
示例7、提取手机号
注意事项:预查不支持量词(如 *、+ 或 {n,m}),如下图所示
五、分组匹配
示例8、银行卡号每4位加空格
REGEXP函数不支持分组提取,支持分组替换,在写正则表达式时,可以使用括号将指定表达式进行分组,REGEXP函数第3个参数匹配模式,设置(2-替换),分组后使用REGEXP函数第4个参数替换内容,根据实际需求使用"\"加1~N序号,可以引用正则表达式指定组匹配到的内容,示例中的正则表达式规则为匹配任意连续4位内容,因正则表达式加了括号,所以替换内容中"\1"可以返回匹配到的第1组内容,然后加一个" "(空格)作为替换内容,即可实现每4位加空格。
示例9、删除日期
正则表达式分为3组
第1组:([一-龟]+) 匹配姓名
第2组:(\d{4}年\d{1,2}月\d{1,2}日) 匹配日期
第3组:(\d+[元,块]) 匹配金额
第4个参数替换内容,引用第1、3组匹配结果,即可实现将第2组匹配的日期删除。
六、非贪婪模式
示例10、提取括号中的内容
如果不需要返回括号,可以使用预查,将不会返回括号
当一个量词(如 *、+ 或 {n,m})之后紧跟一个问号 ?,如 *?、+? 或 {n,m}?,则该量词变为非贪婪模式。
七、综合示例
示例11、统计姓名出现次数(一个单元格内会多次出现)
示例12、拆分身份证号(将字符串逐个拆分)
示例13、手机号、姓名互换位置
八、其他说明
REGEXP函数第1个参数不支持数组,但是第2个参数支持数组,如下图所示。
通过示例我们可以发现,当REGEXP第2个参数为数组时,函数将返回数组中每个正则表达式匹配到的首个结果,和TEXTSPLIT函数当第1个参数为数组时,返回拆分后的首个结果一样,并且如果需要对返回的结果进行再次计算,需要做类似"降维"的操作(对REGEXP函数返回结果连接空文本),如下图所示。
当数组中的正则表达式匹配到多个值时,无法进行"降维"操作,所以REGEXP函数第2个参数使用数组的限制还是比较大的,正常情况下第2个参数不建议使用数组。
提取多组可以使用以下公式