夜雨聆风学习资料网

ARTICLE · 1228998

Excel 中REGEXP正则函数详解(一个函数搞定文本提取、判断、替换)

Excel 中REGEXP正则函数详解(一个函数搞定文本提取、判断、替换)
平时处理表格,是不是经常遇到文字数字混在一起难提取的情况?下面这个函数教你解决
一、REGEXP是什么
REGEXP是WPS的正则表达式函数,支持PCRE2正则语法,同时集提取、匹配判断、替换三大功能于一身。
一句话概括:按照你写好的匹配规则,自动从杂乱文本里抓取内容、校验格式、批量替换文字。
适合场景:混杂文本提取手机号、金额、邮箱、中文、数字、清理备注文字、批量脱敏等。
二、完整语法
excel    
=REGEXP(原始字符串, 正则表达式, [匹配模式], [替换内容])
参数拆解:
1. 原始字符串(必选)
需要处理的文本,可以是单元格引用、文本字符串,也支持数组批量处理整列。
2. 正则表达式(必选)
匹配规则,必须放在英文双引号内,是整个函数的核心。
3. 匹配模式(可选,4种)
- 0 / 省略:【提取模式,默认】,返回匹配到的内容;单文本会溢出全部匹配结果;整列数组默认只返回每一条第一个匹配值
- 1:【判断模式】,只检测文本是否符合规则,返回TRUE或者FALSE,用来做格式校验
- 2:【替换模式】,把匹配到的内容替换成第四参数的文字,此时第四参数必填
- 3:【完整提取模式】,数组批量处理时,返回单元格内全部匹配结果,需要搭配VSTACK、MAP、ARRAYTOTEXT等动态数组函数展示多条结果
4. 替换内容(可选)
仅在模式=2(替换)的时候生效,填写想要替换成的内容。
三、4种模式实操案例(直接复制公式测试)
数据源统一:A2单元格内容: 李四 15912345678,金额:299.6元 
✅ 模式0|提取模式(最常用,默认)
提取里面所有连续数字(手机号、金额)
 excel    
=REGEXP(A2,"\d+(\.\d+)?")
正则解释: \d 代表数字, \d+ 连续数字; (\.\d+)? 匹配可选的小数部分,整数、小数都可以抓到。
 👉 提取纯中文
 excel    
=REGEXP(A2,"[一-龟]+")
 👉 提取手机号(11位数字)
 excel    
=REGEXP(A2,"1[3-9]\d{9}")
 ✅ 模式1|判断模式,格式校验
 判断A2里面是否包含手机号,符合返回TRUE,没有返回FALSE
 excel    
=REGEXP(A2,"1[3-9]\d{9}",1)
 用处:批量校验手机号、身份证、邮箱格式,做数据筛查。
✅ 模式2|替换模式,脱敏/清理文字
 把A2里的手机号替换成***做隐私脱敏
 excel    
=REGEXP(A2,"1[3-9]\d{9}",2,"***")
👉 删除所有数字(把数字替换为空)
 excel    
=REGEXP(A2,"\d+(\.\d+)?",2,"")
✅ 模式3|完整提取模式(批量多行抓取全部结果)
 A列是多条混杂文本,想要把每一条里面所有中文全部提取出来,不会只取第一个
 excel    
=IFNA(REDUCE("",REGEXP(A2:A10,"[一-龟]+",3),VSTACK),"")
搭配REDUCE+VSTACK,把多条匹配结果纵向溢出展示;IFNA用来屏蔽多余#N/A报错。
四、高频正则短句(直接抄进公式里)
正则写法 作用 
 \d+  提取连续整数 
 \d+(\.\d+)?  提取整数+小数(金额) 
 [一-龟]+  提取中文汉字 
 [A-Za-z]+  提取英文字母 
 1[3-9]\d{9}  匹配国内11位手机号 
 [^,;:。,;:.]+  按标点拆分段落 
五、配套小技巧
REGEXP可以搭配SUM、FILTER、MAP、LET等函数联动。
示例:提取所有金额并且自动求和
 excel    
=SUM(--REGEXP(A2,"\d+(\.\d+)?(?=元)"))
(?=元) 是零宽断言,只抓取“元”前面的数字; -- 把文本数字转为数值,SUM直接汇总。
本专栏会持续更新Excel实操干货
建议大家收藏推文,闲暇照着实操练习。
关注本公众号,不错过后续连载内容。

相关学习资料