-- 原始字符串 SELECT 'abc123def456' AS str; -- 删除非数字字符后的结果 SELECT REGEXP_REPLACE('abc123def456', '[^0-9]', '') AS num_str;
可以看到,大家在REGEXP_REPLACE
函数中使用了正则表达式[^0-9]
,表示删除所有非数字(0-9)的字符。同时,大家也可以用该函数来删除某一个具体的非数字字符,比如下面删除所有非正整数的 – 号:
-- 原始字符串 SELECT '12-3-45-6' AS str; -- 删除非数字字符 - 后的结果 SELECT REGEXP_REPLACE('12-3-45-6', '[^0-9\-]|(?<=\b)-', '') AS num_str;
同样地,大家可以看到REGEXP_REPLACE
函数的参数中,大家使用了正则表达式[^0-9\-]|(?<=\b)-
,表示删除所有非数字和非单独出现的 – 号,即将 12-3-45-6 转化为 123456。