Oracle11g 如何在oracle中使用正则表达式仅从字符串中提取十进制数
我有一个包含字母数字字符的字符串。如果字符串有一个十进制值,那么只有我想从字符串中获取十进制值,否则返回空白 我尝试了正则表达式,它同时给出数字和小数REGEXP_SUBSTR(字符串_值,'[0-9][.0-9]+')) 请查看以下示例数据 示例1:我的字符串是“182 test 123423”。这里没有十进制值,所以我需要返回空白 示例2:我的字符串是“Test01.1%ter230334”,输出应该是01.1 示例3:我的字符串是“14.05获取fvfdf 2434 Rf”,输出应该是14.05Oracle11g 如何在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
请告诉我哪里做错了。您当前的尝试几乎是正确的,但正则表达式模式有点不正确。请尝试以下版本:
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