BKN中文网
领取MOLI红包
game show DNY中文网
你的位置:BKN中文网 > DNY中文网 > 如何在表格中用正则函数巧妙处理字符串
如何在表格中用正则函数巧妙处理字符串

2025-01-10 11:29    点击次数:191


   原文标题:《这个免费的 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 或者 el:第五个字符是: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)老规矩,我们来看看公式中的第二参数的正则表达式:\(   \ 表示转义字符,由于括号有特殊含义,所以需要用转义字符转换。. *  .表示除了换行符 / 回车符以外的任意字符。\)   与 \,用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

Powered by BKN中文网 @2013-2022 RSS地图 HTML地图

Copyright Powered by365站群 © 2013-2024