办公软件 > Excel > Excel

如何在表格中用正则函数巧妙处理字符串

309人参与 2024-06-17 Excel

原文标题:《这个免费的 wps 新函数太绝了,真后悔没早点遇到!》

大家好,我是啥都会一点点的小爽~

说到处理字符串的判断函数,大家会想到哪些?

find 函数 + isnumber 函数

search 函数 + isnumber 函数

....

说到处理字符串的提取函数,大家会想到哪些?

left 函数 / mid 函数 / right 函数

lookup 函数 / match 函数

.....

说到处理字符串的替换函数,大家会想到哪些?

substitude 函数 / replace 函数

.....

关于判断,提取,替换,其实只要一个正则函数就都可以搞定!

最近 wps 新出了正则函数 regex。

它使用的是正则表达式

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

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

下面大家跟着小爽的步伐,来了解一下这个强大的函数吧~

1、正则函数语法

regexp 函数的作用:是利用正则表达式,去匹配原始字符串,得到匹配结果,进行提取 / 判断 / 替换操作。

=regexp(原始字符串,正则表示式,[匹配模式],[替换内容])

第一参数:原始字符串

第二参数:正则表达式

关于正则表达式,不用怕,后面的案例会带领大家进一步的了解正则语法。

第三参数:匹配模式

第四参数:替换内容

当第三参数为替换时,输入替换的内容,默认替换的值为 0。

从下图中我们可以看到,第三参数,正则的匹配模式有三种:

0-提取 (默认方式)

1-判断

2-替换

这三个正则匹配模式,其实也可以看出正则函数主要的功能用在判断字符,提取字符,替换字符上。

2、判断字符串

在 excel 中,当我们需要判断字符串中是否某个字符时,一般使用的是 find+isnumber 函数。

如下图:判断下述字符是否存在 excel。

=isnumber(find("excel"a2))

但是,excel 还可能存在小写的 excel,这时我们可以增加查找条件 excel,然后用 or 函数判断。

使用正则函数,也很快!

=regexp(a2"(e|e)xcel"1)

那要是数据存在 excel,excel…… 等等,只有 l 是小写,其余字母都可能是大写和小写字母,那不是要一一写出所有可能结果再查找?

不管多麻烦的判断,一个正则函数,通通可以搞定!

=regexp(a2,"(e|e)(x|x)(c|c)(e|e)l",1)

我们来看看这个公式:

原始字符串:a2 单元格

正则表达式:"(e|e)(x|x)(c|c)(e|e) l"

在正则语法中,|  表示或,所以 (e|e) 表示 e 或者 e

(e|e):第一个字符是:e 或者 e

(x|x):第二个字符是:x 或者 x

(c|c):第三个字符是:c 或者 c

(e|e):第四个字符是:e 或者 e

l:第五个字符是:l

这也就是对应查找 excel 的规则,除了最后的 l 字母,其余的可以是大写也可以是小写。

匹配模式:1 ,对应的是判断,最终返回逻辑值,true / false。

敲黑板:

到这里,我们学会了第一个正则语法:|  代表或的意思。

大家学会了嘛?继续冲鸭!!

3、提取字符串

在字符串提取中,经常有个噩梦就是提取字符串中的数字。

各种乱七八糟的数字文本混合,使得我们非常的头痛。

比如我们要提取文本中最左边的数字。

使用 left 函数 + lookup 函数。

=-lookup(9^9-left(a2,row($1$15)))

但是我们要提取的是第一个数字。那就得换另外的公式。

=lookup(9^9,mid(a2,match(1,mid(a2,row($1:$15),1)^0,0),row($1:$15))*1)

头皮疼!!!!/(ㄒ o ㄒ)/~~

不过现在,我们有正则函数,一下子就能搞定!

=regexp(a2"\d+")

搭配 index 函数,我们想取第几个就取第几个!

除了提取数字外,还可以提取非数字的字符串。

=regexp(a2,"\d+")

来来来,我们来看看公式~

公式中,主要涉及两个正则语法

\d+,表示匹配一个以及以上数字,所以将字符串中全部是数字的匹配出来;

\d+,则表示匹配一个以及以上的非数字,所以将字符串中全部是非数字的匹配出来。

似不似很方便!!

敲黑板:

这里我们提到两个正则语法。

\d:表示所有的数字,相当于 [0-9];

\d:表示所有的非数字,相当于 [^0-9];

+:加号表示量词,意思是一个到多个。

另外的量词有 * ,表示 0 到多个;

? 表示 0 个或者 1 个。

到这里,小伙伴们又学到几个正则语法了,太棒了,继续冲鸭~

4、替换字符串

当我们清洗数据的时候,总有一些烦人的备注在捣蛋。所以我们需要将括号中的内容通通删除掉。

通过 find 函数查找两个括号的位置,提取内容后,用 substitute 函数将它替换掉!

=substitutea2,mid(a2,find("("a2)find(")"a2)-find("("a2)+1)"")

传统做法好麻烦。

别怕!

有了正则函数,也是一个函数搞定!

=regexp(a2,"\(.*\)",2)

老规矩,我们来看看公式中的第二参数的正则表达式

\(   \ 表示转义字符,由于括号有特殊含义,所以需要用转义字符转换。

. *  .表示除了换行符 / 回车符以外的任意字符。

\)   与 \(同理

第三参数为 2 ,表示替换,第四参数不写默认为空。

所以公式就不难理解,就是 正则表达式匹配字符串中括号的内容,并将括号中的内容替换为空,从而达到删除的目的。

敲黑板 :

这里我们又学到两个正则语法

\ 为转义字符,主要将特殊符号进行转义。

.代表除换行回车符以外的任意字符。

5、最后的话

正则是处理字符串的一个很强大的利器,很多传统函数很难做到的一些数据处理,正则都可以轻松搞定!

本文涉及了几个正则语法:

|  代表或

\d 代表数字

\d 代表非数字

量词中

+ 代表一个到多个。

* 代表零个到多个。

? 代表 零个或者一个。

\ 代表转义字符

当然正则语法不止有这些,文章篇幅有限,后面有机会我们再介绍。

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

Excel 5 个办公必备函数组合,助力效率提升

06-17

用 Excel 做出美观实用的折线图

06-17

Excel 透视表的 15 种数据汇总方式

06-22

Excel 制作多表联动的动态看板

06-23

动动嘴搞定微软 Excel 复杂公式:拆分单列数据、提取年份计算岁数

06-25

Excel 5 个常用函数组合

06-08

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论