如何使用REGEXP-sql从字符串中仅提取5位数字
我只需要在postgresql或redshift DB中使用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
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_替换工作正常,但不是这个让我们来。