首页 > 解决方案 > oracle正则表达式从字符串中提取十进制数

问题描述

我正在尝试从随机字符串中提取十进制数。如何使用 regex_replace 函数做到这一点?(可选)我想为负整数保留负号。

例子:

输入:

'text abc023.46'
 '-123.12abc'

输出:

023.46
-123.12

标签: regexoracleregexp-replace

解决方案


使用REGEXP_SUBSTR

SELECT REGEXP_SUBSTR(col, '-?\d+(\.\d+)?')
FROM yourTable;

此模式还使小数部分成为可选的。


推荐阅读