假设我有一个字段:
product_strength
10MG/ML
0.25MG
25MG
0.125MG
如何只提取“numeric”部分,然后转换为numeric?我可以做到这一点:
regexp_replace(product_strength, '(\D|!\.)','','g')::numeric AS result_numeric
但问题是它实际上并不能解释小数。换句话说,这将返回
product_strength result_numeric
10MG/ML 10
0.25MG 25
25MG 25
0.125MG 125
但我想回去
product_strength result_numeric
10MG/ML 10
0.25MG 0.25
25MG 25
0.125MG 0.125
最佳答案
尝试this正则表达式来匹配数字;
\d+\.?\d*
编辑:正如“布尔类型”所说,如果你也需要负数,你可以添加一个可选的负号,并使用;
\-?\d+\.?\d*