Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle11g 如何在oracle中使用正则表达式仅从字符串中提取十进制数_Oracle11g - Fatal编程技术网

Oracle11g 如何在oracle中使用正则表达式仅从字符串中提取十进制数

Oracle11g 如何在oracle中使用正则表达式仅从字符串中提取十进制数,oracle11g,Oracle11g,我有一个包含字母数字字符的字符串。如果字符串有一个十进制值,那么只有我想从字符串中获取十进制值,否则返回空白 我尝试了正则表达式,它同时给出数字和小数REGEXP_SUBSTR(字符串_值,'[0-9][.0-9]+')) 请查看以下示例数据 示例1:我的字符串是“182 test 123423”。这里没有十进制值,所以我需要返回空白 示例2:我的字符串是“Test01.1%ter230334”,输出应该是01.1 示例3:我的字符串是“14.05获取fvfdf 2434 Rf”,输出应该是14

我有一个包含字母数字字符的字符串。如果字符串有一个十进制值,那么只有我想从字符串中获取十进制值,否则返回空白

我尝试了正则表达式,它同时给出数字和小数REGEXP_SUBSTR(字符串_值,'[0-9][.0-9]+'))

请查看以下示例数据

示例1:我的字符串是“182 test 123423”。这里没有十进制值,所以我需要返回空白

示例2:我的字符串是“Test01.1%ter230334”,输出应该是01.1

示例3:我的字符串是“14.05获取fvfdf 2434 Rf”,输出应该是14.05


请告诉我哪里做错了。

您当前的尝试几乎是正确的,但正则表达式模式有点不正确。请尝试以下版本:

SELECT
    REGEXP_SUBSTR(string_value, '[0-9]+\.[0-9]+')
FROM yourTable;

下面是对正则表达式模式的解释:

[0-9]+   match one or more digits
\.       followed by a literal decimal point (which should be escaped)
[0-9]+   followed by one or more digits

您当前的尝试几乎是正确的,但是正则表达式模式有点不正确。请尝试以下版本:

SELECT
    REGEXP_SUBSTR(string_value, '[0-9]+\.[0-9]+')
FROM yourTable;

下面是对正则表达式模式的解释:

[0-9]+   match one or more digits
\.       followed by a literal decimal point (which should be escaped)
[0-9]+   followed by one or more digits