如何在OpenRefine中使用GREL保留单元格中的数字
提取单元格中的纯数字方案
Excel 实现方式
方法1:TEXTBEFORE函数(适合Excel 365/2021及以上版本)
在目标单元格输入公式:=TEXTBEFORE(A1,CHAR(1),,TRUE)
下拉填充即可自动提取每个单元格开头的数字部分,不管后面跟着什么文本。
方法2:Power Query正则提取
- 选中数据所在列,点击「数据」选项卡 →「从表格/范围」导入Power Query编辑器
- 选中目标列,点击「转换」选项卡 →「提取」→「匹配模式」
- 在弹出窗口中输入正则表达式
^\d+\.?\d*,点击确定,即可得到纯数字结果。
Python 实现方式
如果用代码批量处理,借助正则表达式可以快速完成:
import re # 模拟原始数据 raw_data = ["5.6", "4", "5years", "6years"] # 提取每个元素中的开头数字 cleaned_data = [re.search(r'^\d+\.?\d*', item).group() for item in raw_data] # 输出结果 print('\n'.join(cleaned_data))
运行后输出:
5.6 4 5 6
核心逻辑说明
不管用哪种工具,核心都是用正则规则 ^\d+\.?\d* 匹配开头的数字部分:
^:限定从字符串开头匹配\d+:匹配1个及以上的整数部分\.?:匹配可选的小数点(支持小数)\d*:匹配小数点后可选的数字(支持整数或小数)
内容的提问来源于stack exchange,提问作者Chang
相关产品推荐
相关产品推荐

