如何修改正则表达式仅保留整数/浮点数并过滤日期与文本?
字段清洗:只保留纯整数/浮点数,过滤日期与文本
解决方案
要解决日期残留开头数字的问题,不能只截取开头的数字片段,必须匹配整个字符串是否为合法的整数或浮点数,不符合的直接置空。
修改后的正则替换规则
使用以下正则表达式(适配多数支持正则替换的工具/语言):
regex_replace("^(\\d+(\\.\\d+)?)$", "$0", "")
或者更高效的反向匹配(直接替换所有不符合规则的内容为空):
regex_replace("^(?!\\d+(\\.\\d+)?$).*", "")
规则说明
^\\d+(\\.\\d+)?$:严格匹配整个字符串:^和$确保匹配范围是整个字段,避免误截取日期开头的数字\\d+匹配1位及以上的整数部分(\\.\\d+)?可选的小数部分(允许一个小数点加1位及以上数字)
- 所有包含非数字/小数点字符的内容(日期、文本、带字母的编号等)都会被替换为空
测试结果
对你提供的测试数据:
- 保留值:
0、0、1、15、1.8910127482598、1、0、0、0 - 置空值:
2022-07-01 20:30:29、7/1/2022、West、Living、C000000475
完全满足需求。
内容的提问来源于stack exchange,提问作者atammayata
相关产品推荐
相关产品推荐

