返回数字string:postgresql

nlejzf6q  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(259)

我有线索:我10岁,有500个朋友。我想返回10和500,但是当我执行下面的查询时,它返回空的:

SELECT
REGEXP_MATCHES('I have the string: I am 10 years old with 500  friends',
                '-?\\d+','g');
zfycwa2u

zfycwa2u1#

问题在于双反斜杠。虽然有些数据库需要转义regex字符类,但postgres只需要一个反斜杠。
所以:

select regexp_matches(
    'I have the string: I am 10 years old with 500 friends',
    '-?\d+',
    'g'
);
``` `'-?'` 对于示例字符串来说是不合理的。我保持原样,以防你想容纳可能的负数。
db小提琴演示
2lpgd968

2lpgd9682#

替换 \\d[0-9] :

SELECT
  REGEXP_MATCHES(
    'I have the string: I am 10 years old with 500 friends',
    '(-?[0-9]+)','g'
  )

输出:

10
500

观看现场演示。

相关问题