正则表达式Postgres不止一个点

时间:2018-06-22 15:21:21

标签: sql regex postgresql

我需要返回在特定列中具有多个.的字段。

现在我有这个查询:

select * 
from table 
where column ~ '\.{2,}?';

但是由于某种原因,它什么也不返回。如果我使用类似'A{2,}?'的名称,则可以使用。显然是问题所在。

2 个答案:

答案 0 :(得分:1)

由于点之间不相邻,因此返回null。您必须按照正则表达式元字符的顺序考虑字符的出现。您可以尝试以下方法:

select * 
from table 
where column ~ '\.\d{3}\.';

或者不仅仅着眼于点字符,而是开始将字符串作为一个整体进行分析并考虑数字:

where column ~ '^\d{3}\.\d{3}\.';

答案 1 :(得分:0)

为什么不只使用like

where column like '%.%.%'