大家好,我是孙斌。日常表格中从字符串中提取数字、拆分字符串时,传统函数很难搞定,而Excel、WPS 新版自带的正则表达式函数,就是解决这类复杂字符串问题的神器。
Excel中的正则表达式函数用法如下。

第一个参数表示原始字符串,第二个参数表示匹配模式,第三个参数表示返回模式,0表示返回第一个匹配的结果,1表示返回所有的匹配结果。
WPS中也有一个类似的函数,名称不一样,但是用法是一样的。

1、提取数字
例如,从字符串中提取所有数字,直接用正则表达式函数。
=REGEXEXTRACT(A2,"[0-9.-]+",1)

由于要提取的数字包含整数、小数和负数,所以匹配模式写成"[0-9.-]+",方括号里面的0-9表示提取数字0到9,后面的点和减号表示提取小数点和负号,最后的加号表示出现次数为多次。
WPS中也是一样的用法,只是函数名称不一样。

2、提取汉字、英文
例如,从字符串中提取汉字,直接用正则表达式函数。
=REGEXEXTRACT(A2,"[一-龟]+",1)

这里的匹配模式"[一-龟]+",一到龟类似于0-9,能够匹配到几乎所有的汉字。
也可以提取英文,用[a-z]+匹配所有小写字母。

3、正则测试和正则替换
正则表达式函数还有两个相关的函数,只是用得比较少,REGEXTEST和REGEXREPLACE。
REGEXTEST表示正则表达式测试,返回True或者False,例如判断字符串中是否有数字。

REGEXREPLACE表示正则表达式替换,将符合匹配模式的内容替换为指定内容,例如将字符串中的所有数字替换为小括号。

4、提取字符串和数字并转为表格
例如,需要将以下字符串整理为表格,有报销费用名称和金额。

首先用正则表达式函数将字符串中的费用名称提取出来,这里的匹配模式"[一-龟]{2,}"表示提取2个及以上的汉字,不包括元字,用transpose转置为列。

然后用正则表达式函数将字符串中的数字提取出来并转置为列。

以上就是Excel中正则表达式函数的常见用法。

夜雨聆风