Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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
如何使用REGEXP-sql从字符串中仅提取5位数字_Sql_Amazon Redshift - Fatal编程技术网

如何使用REGEXP-sql从字符串中仅提取5位数字

如何使用REGEXP-sql从字符串中仅提取5位数字,sql,amazon-redshift,Sql,Amazon Redshift,我只需要在postgresql或redshift DB中使用REGEXP sql从字符串中提取5位数字 比如说, f 34 123 54321 123456 上面的字符串应该返回 54321 我只能从字符串中获取数字,但不能仅获取5位数字 select REGEXP_REPLACE('f 34 123 54321 123456', '[^0-9]') five_digit_number --returns 3412354321123456 使用regexp\u匹配项 select rege

我只需要在postgresql或redshift DB中使用REGEXP sql从字符串中提取5位数字

比如说,

f 34 123 54321 123456
上面的字符串应该返回

54321
我只能从字符串中获取数字,但不能仅获取5位数字

select REGEXP_REPLACE('f 34 123 54321 123456', '[^0-9]') five_digit_number
--returns 3412354321123456

使用
regexp\u匹配项

select regexp_matches('f 34 123 54321 123456','\y\d{5}\y','g')
指定
'g'
标志可以在字符串中出现多个5位数的情况下提供所有匹配项

\y
指定单词边界

对于红移,可以使用
regexp\u substr

select REGEXP_SUBSTR('f 34 123 54321 123456', '(^|[^[:word:]]|[[:space:]])\\d{5}([^[:word:]]|[[:space:]]|$)')

我获取
错误:42883:函数regexp_匹配(“未知”、“未知”)不存在
您使用的是哪个版本的postgres?我使用红移数据库。。。REGEXP_替换工作正常,但不是这个让我们来。