首页news 正文
目录

利用 3 个新增的 Excel 正则函数进行文本插入、文本拆分

news2024-10-25 02:48721470
SEO标题:《这 3 个全新的Excel正则函数,技巧炫酷!》大家好,我是擅长Excel数据处理的小爽~之前我们介绍过WPS新增的一款强大的文本处理函数 —— Regex函数。(文章请查看)该函数不仅可以进行文本判断和提取,还能进行文本替换。事实上,Regex函数本质上是下面三个正则函数的集合版本。这三个函数分别是 :文本判断:Regextest文本提取:R...

SEO标题:《这 3 个全新的Excel正则函数,技巧炫酷!》

大家好,我是擅长Excel数据处理的小爽~

之前我们介绍过WPS新增的一款强大的文本处理函数 —— Regex函数。(文章请查看)

该函数不仅可以进行文本判断和提取,还能进行文本替换。

事实上,Regex函数本质上是下面三个正则函数的集合版本。

这三个函数分别是 :

文本判断:Regextest

文本提取:Regexextract

文本替换:Regexreplace

如今,在Office 365中的Excel中,这三个正则函数也得到了更新。WPS和Excel的正则函数语法相似,大家可以进行对照学习。

考虑到一些伙伴想了解更进阶的正则函数。

今天,小爽将继续讨论正则函数。

在我们日常工作中,除了需要对文本进行判断、提取、替换外,也可能需要进行插入、拆分等操作。

我们一起往下看,进一步了解其他正则表达式。

正则表达式是一种强大的工具,用于匹配和操作文本,它由一系列字符和特殊字符组成的模式,描述要匹配的文本模式。

正则表达式可在文本中查找、替换、提取和验证特定模式。

PS.本文使用Excel内置的正则函数进行演示。

1、文本插入

例如,我们希望在中文和英文/数字之间插入分隔符“-”,以便更好地查看信息。

传统的方法是:使用字节数确定文本位置,然后进行替换。

=REPLACE(A2,LENB(A2)-LEN(A2)+1,0"-")

这种方法也行得通,但若单元格开头不是文本,则公式可能出错!!

因此,更好的方法是利用强大的正则函数!

示例如下:

=REGEXREPLACE(A2"(*[一-龟])(\w+)""$1-$2")

我们来看看这个公式:

=REGEXREPLACE(A2"(*[一-龟])(\w+)""$1-$2")

Regexreplace 语法:

=REGEXREPLACE (字符串,正则表达式,替换表达式,[指定替换实例],[是否区分大小写])

字符串:A2 单元格

正则表达式:"(.*[一-龟])(\w+)"

替换表达式:"$1-$2"

假设字符串为 "excel 小爽 xiaoshuang"。

(.*[一-龟]):第一分组

.* 除了换行符之外的任意字符,* 代表0到多个

[一-龟] 后面跟着一个中文字符

第一组匹配的字符为 excel 小爽。

(\w+):第二分组:

\w 在正则表达式中表示字母数字字符,包括所有字母(a-z、A-Z)和数字(0-9)的字符。它等同于 "[A-Za-z0-9_]"

\w+ 代表一个到多个

第二组匹配的字符为 xiaoshuang。

替换表达式:"$1-$2"

$1 代表第一分组的内容,即 "excel 小爽"

$2 代表第二分组的内容,即 "xiaoshuang"

"$1-$2" 即 "Excel 小爽-xiaoshuang"。

拆分函数 Textsplit 暂时无法进行正则语法拆分,但我们可以利用正则函数Regexextract!

2、文本拆分

如下图所示:希望提取日期之间的姓名。

使用Textsplit函数需先将数字和分隔符进行数组拼接,然后再进行拆分。

=TEXTSPLIT(A2,VSTACK(SEQUENCE(10,1,0)"-")1)

若使用正则函数来做,则不需要像拆分函数那样进行拼接,只需将需要拆分的字符放在中括号中取反即可。

=REGEXEXTRACT(A2"[^0-9-]+"1)

Regexextract 语法:

=REGEXEXTRACT (字符串,正则表达式,[匹配方式])

匹配方式:

0 - 第一个匹配项 (默认值)

1 - 所有匹配项

2 - 捕获第一个匹配项的组

第三个参数为1,因为我们要匹配所有匹配项。

=REGEXEXTRACT(A2,"[^0-9-]+",1)

重点关注第二个参数:正则表达式

"[^0-9-]+"

[]中括号:用于指定一个字符集合或范围,可以让正则表达式匹配特定的字符或范围。

^号:在字符集合开头表示取反,即匹配除字符集合以外的其他字符。

-号:在字符集合中间表示范围,但若在开头或结尾,则表示普通字符-

该表达式的含义是:取除0至9和-之外的字符,取一个或多个,尽可能多地匹配。

只匹配数字和-之外的字符,相当于按数字和-进行拆分了~

3、总结

今天我们学到了新的正则表达式:

在Regexreplace函数中:

正则表达式,()代表分组,括号数代表分组数

替换表达式,$n代表第n个分组

我们能运用分组来灵活插入字符串

\w表示数字字母下划线 [0-9a-zA-Z_]

\W表示非数字字母下划线 [^0-9a-zA-Z_]

在拆分中,我们能通过中括号取反的方式实现正则拆分:

[]代表字符集,括号中开头^代表取反[^..]

甚至可以得出:

\d的反义是\D,即[^0-9]和\D是同样的。

好了,本文就说到这里啦~

看到这里,小伙伴是否认为,正则就是这样一回事呢~

后续文章我们将继续深入探讨正则语法。

本文来源自微信公众号:秋叶Excel(ID:excel100),作者:小爽

广告声明:文中包含的外部链接(包括但不限于超链接、二维码、口令等形式),旨在传递更多信息,节省筛选时间,结果仅供参考。

标签学院

扫描二维码推送至手机访问。

本文转载自互联网,如有侵权,联系删除。

本文链接:https://xiezilouchuzuwang.cn/news/4010.html

您暂未设置收款码

请在主题配置——文章设置里上传

扫描二维码手机访问

文章目录