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实操干货 建议大家收藏推文,闲暇照着实操练习。 关注本公众号,不错过后续连载内容。















































































