Excel正则表达式.获取字符

在 Excel 中,正则表达式(通过 REGEXTEST、REGEXEXTRACT、REGEXREPLACE 等函数实现)是处理文本的强大工具,其核心作用是通过模式匹配对文本进行精准的查找、验证、提取或替换,大幅提升复杂文本处理的效率。

REGEXEXTRACT 抓取函数

REGEXREPLACE 替换函数

REGEXTEST 用于检查文本是否与指定的正则表达式模式匹配

正则表达式字符集

复制代码
基础部分:	
	abc 包含字符,且按照文字先后关系
	[def] 是否包含字符: d, e, f
	[g-z] 从字符d到h是否被包含
开始结束类型	:
	^The 开始是否为:The
	end$ 结束是否为:end
	[^xyz] 不存在字符: x, y, z
	^[^A-Z] 开始字符不是在范围: a-m
匹配类型	:
	. 匹配任何单个文本字串(不包含换行符)
	\. 转义成是否存在.
	[0-9] 任意单个数字
	\d 任意单个数字
	.{3} 任意3个字符构成
	.{2,3} 最少2个字符构成,最大3个字符构成
匹配类型	
	. 匹配任何单个文本字串(不包含换行符)
	\d 任意单个数字
	[a-zA-Z] A-Z不分大小写
	\w 代表: A-Z, a-z, 0-9
	\W 代表:  非 A-Z, a-z, 0-9
	\s 空格
匹配次数类型	
	\d 任意单个数字
	\d* 任何数量的数字,包含0次
	\d+ 1个或多个数字
	\d? 0个或一组数字
	\d{3} 3个数字
	\d{2,4} 最少2个数字构成,最大4个数字构成
	br{3,5}\s?  is brrr, brrrr, or brrrrr but not br or brr
	(brrr ){2,3} is brrr brrr or brrr brrr brrr 
空格或换行类型	
	\d \d 数字 空格 数字
	^\d \d$ 开始为数字 空格 结束为数字
	\n 换行符
	\s 空格
文件匹配类型	
	匹配文件类型
	.+\.pdf$ 任意多次字符 . 结尾为DPF
	(.+)\.pdf$ 增加抓取的范围()
	.+\.xls[xmb]?$ xls[xmb] Excel 文件 xls, xlsx, xlsm, xlsb
	(.+)\.(xls[xmb]?$) ()返回2个抓取部分: 文件名 & 文件类型
断言	
	(?=exp) 查找exp前面的内容
	(?<=exp) 查找exp后面的内容
懒惰模式(非贪婪模式)
*?、+?、??、{n,m}?    量词后面加?  

获取文本中的所有中文字符

复制代码
=REGEXEXTRACT(A1,"[一-龟]+")

获取文本中的所有字母、数字

复制代码
=REGEXEXTRACT(A1,"[a-z]+")  
=REGEXEXTRACT(A1,"[A-Z]+")  
=REGEXEXTRACT(A1,"[0-9]+")

MS函数:

案例一:

案例二:

{2,}:2个以上

案例三:打卡时间分解

案例四:提取文本中小数点/负数的值并求和

-- 转数值,等同于*1

案例五:提取两个单元格的中文和数值至一列

concat合并文本

复制代码
=TRANSPOSE(REGEXEXTRACT(CONCAT(A1:A2),"[一-龟]+",1))
=TRANSPOSE(REGEXEXTRACT(CONCAT(A1:A2),"\d+",1))

案例六:使用断言提取指定字符后面的值

(?=exp) 查找exp前面的内容

(?<=exp) 查找exp后面的内容

规范的内容1:

复制代码
=REGEXEXTRACT(A2,"(?<=连衣裙:)\d+",1)  # 固定字符串
=IFERROR(REGEXEXTRACT($A2,"(?<="&C$1&":)\d+")*1,"")  # 动态字符串

规范的内容2:

难度⭐⭐⭐

复制代码
=REGEXEXTRACT($A2,"(?<="&B$1&":).+(?="&C$1&")",) 
=REGEXEXTRACT($A2,"(?<="&C$1&":).+(?="&D$1&")")

不规范的内容1:

. 匹配任何单个文本字串(不包含换行符)

\d? 0个或一组数字

.{2,3} 最少2个字符构成,最大3个字符构成

复制代码
=IFERROR(REGEXEXTRACT($A2,"(?<="&C$8&".)\d+")*1,"")
=IFERROR(REGEXEXTRACT($A2,"(?<="&C$8&":?)\d+")*1,"")
=IFERROR(REGEXEXTRACT($A3,"(?<="&C$8&":{0,1})\d+")*1,"")  

缺少:

不规范的内容2:

复制代码
=IFERROR(--REGEXEXTRACT($A2,"(?<="&B$1&".{,3})[0-9.]+"),"")

不规范的内容3:

复制代码
=IFERROR(--REGEXEXTRACT($A2,"(?<="&B$1&".{,3})[0-9.]+"),"")

不规范的内容4:

复制代码
=REGEXEXTRACT(B2,"\d+(?="&C$1&")")
=REGEXEXTRACT(B2,"\d+\*\d+")

案例七:非贪婪模式(懒惰模式)

*?、+?、??、{n,m}? 量词后面加? 转懒惰模式

\s 空格

复制代码
=REGEXEXTRACT($A$2,"(?<="&B$1&":).+?\s",) # 获取第一个空格前的内容

案例八:换行符

\n 换行符

. 匹配任何单个文本字串(不包含换行符)

WPS函数:

相关推荐
Allstar_431 小时前
制造业研发管理数字化:从 Excel 到专业 APQP 系统的架构选型思考
架构·excel
驾驭人生1 小时前
NET NPOI 实战:生成带下拉、数据校验、必填标红的 Excel 导入模板
excel
泡海椒1 小时前
把 TRANSFORM 做成可扩展能力:JQuick-Excel 的函数与 SPI 调用链
驱动开发·excel
临床数据科学和人工智能兴趣组2 小时前
在R语言的生态系统中,字符串处理一直是一个重要且复杂的任务
开发语言·正则表达式·r语言·r语言-4.2.1
2601_962780913 小时前
2027采购岗准备:大数据管理与应用专业如何把Excel、SQL变成业务能力
excel
开开心心_Every4 小时前
文件查重软件批量删除重复文件释放空间
java·开发语言·c#·计算机外设·ocr·excel·perl
泡海椒6 小时前
Spring 项目中如何组织 JQuick-Excel 的 XML 与 Bean
xml·spring·excel
死磕音视频6 小时前
Microsoft Copilot 办公入门:在 Word、Excel、PowerPoint 里用 AI 完成日常文档工作
word·excel·copilot·办公效率
Access开发易登软件6 小时前
我全新开发了一套 Access 通用 Excel 导入工具,现在开源了
数据库·microsoft·excel·mfc·vba·access·access开发
泡海椒6 小时前
图表与主题如何设计扩展:基于 JQuick-Excel 现有工厂的工程化做法
excel