1. 概述
1.1 应用场景
有时候我们希望从目标字符串中提取出所有的数字,重新组合成一个字符串,如下图所示:
1.2. 实现思路
先将字符串分割成数组,再对数组每一项进行筛选,保留下数字,最后以字符串输出。
方案一:
1)先利用 split( ) 函数进行分割,这里要分割每一项,所以分割符为空:=split(目标字符串,""),如下图所示:
2)利用 GREPARRAY( ) 函数对上一步结果进行筛选,这里使用了 regexp( ) 函数来判断是否是数字:=GREPARRAY(上一步结果, regexp(item, "[0-9]")),如下图所示:
3)使用 JOINARRAY( ) 函数将数组以字符串方式输出,拼接符为空:=JOINARRAY(上一步结果, ""),如下图所示:
4)综合起来,公式就是=JOINARRAY(GREPARRAY(split(目标字符串, ""), regexp(item, "[0-9]")), ""),如下图所示:
方案二:
使用公式:JOINARRAY(split('a1B2Cc3','\\D'),'')
公式说明:SPLIT 函数的第二个参数支持支持正则表达式作为间隔,因此这里的 \\D 表示的是匹配一个非数字字符,然后再用JOINARRAY( ) 函数将数组以字符串方式输出,拼接符为空。
2. 示例
2.1 模板设计
1)将数据集字段拖到单元格 A2 ,如下图所示:
2)依次选中 B2~E2 单元格,设置形态公式,如下表所示:
单元格 | 公式 | 作用 |
B2 | split(A2,"") | 用 split( ) 函数进行分割 |
C2 | GREPARRAY(B2, regexp(item, "[0-9]")) | 用 GREPARRAY( ) 函数对上一步结果进行筛选,这里使用了 regexp( ) 函数来判断是否是数字 |
D2 | JOINARRAY(C2, "") | 用 JOINARRAY( ) 函数将数组以字符串方式输出 |
E2 | JOINARRAY(GREPARRAY(split(A2, ""), regexp(item, "[0-9]")), "") | 整合B2~D2公式 |
2.2 效果预览
1)PC端
保存模板,点击PC端预览,如下图所示:
2)移动端
3. 模板下载
点击下载模板:提取字符串中的数字.cpt