PostgreSQL - 查询重复数字相同的所有多位数(repdigit,“Schnapszahl”)

时间:2015-10-23 07:23:51

标签: regex postgresql numbers string-function

我只想要带有标记数字的条目

1234

11 9834的 55

6526347

11

207的 555

777

34的 3333 987

34678

1 个答案:

答案 0 :(得分:5)

这个正则表达似乎是这样做的:

select nr
from numbers
where nr::text ~ '([0-9])(\1)';

([0-9])为单个数字创建一个组。 (\1)引用正则表达式中的第一个组。因此([0-9])(\1)表示:“数字后跟相同的值

您的样本数据的输出是:

with numbers (nr) as (
  values 
    (1234),(11983455),(6526347),(11),(207555),(777),(343333987),(34678)
)
select nr
from numbers
where nr::text ~ '([0-9])(\1)';

nr       
---------
 11983455
       11
   207555
      777
343333987

虽然我只考虑11和777是“Schnapszahl”