我有一张table:
column1 column2
The first value is 200 gb need to restart (2 times)
The 2nd value is 700 gb need (optional) to restart (10 times)
我试图从表中得到数值。预期输出为
column1_numeric column2_numeric
200 2
700 10
对于第1列:我尝试使用以下方法获取数据: regexp_replace(column1, '[^0-9]', '') as column1_numeric;
但这对第二行不起作用,返回2700
对于专栏2:我正在尝试: regexp_replace(regexp_extract(column2,'\\((.*?)\\)'), '[^0-9]', '') as column2_numeric
但这对于第二行也不起作用,并返回空值
有什么建议吗?
3条答案
按热度按时间u3r8eeie1#
从字符串中提取最后一个数值
'(\\d+)([^0-9]*)$'
:它提取
也代替了
[^0-9]
(不是数字)你可以用\\D
,稍微短一点:sshcrbum2#
如果您使用下面的正则表达式,它将同时适用于这两列,并且只从字符串中提取数字。
ccrfmcuu3#
请试试这个
选择regexp\u replace('第一个值为200 gb','[^0-9]','')
结果是200分
试试这个:
选择regexp\u replace(substring('第二个值为200 gb',-6),'[^0-9]','')