模式匹配不适用于不同版本的PostgreSQL

模式匹配不适用于不同版本的PostgreSQL,postgresql,postgresql-9.5,postgresql-9.0,Postgresql,Postgresql 9.5,Postgresql 9.0,从查询中获取数据时,我正在尝试将字符串模式与我的regex'^\\d[0-9]*\/\d[0-9]*\/\d[0-9]*'匹配。它在PostgreSQL 9.5.4版上运行良好,但在我的生产服务器9.0.4版上不起作用 我需要在正则表达式中做哪些修改才能使其与PostgreSQL 9.0.4版兼容 查询: Select * from table where column_name ~ '^\d[0-9]*\/\d[0-9]*\/\d[0-9]*' 我尝试了postgres doc()中建议的E

从查询中获取数据时,我正在尝试将字符串模式与我的regex
'^\\d[0-9]*\/\d[0-9]*\/\d[0-9]*'
匹配。它在PostgreSQL 9.5.4版上运行良好,但在我的生产服务器9.0.4版上不起作用

我需要在正则表达式中做哪些修改才能使其与PostgreSQL 9.0.4版兼容

查询:

Select * from table where column_name ~ '^\d[0-9]*\/\d[0-9]*\/\d[0-9]*'

我尝试了postgres doc()中建议的
E'^\\d[0-9]*\/\d[0-9]*\/\d[0-9]*'
,但它不起作用。

postgres 9.0不再受支持。9.0.4缺少4年的错误修复。您至少应该升级到9.0.23,其中包括许多正则表达式的错误修复。您不需要转义前斜杠
/
(既不转义文本,也不转义模式匹配)。而且,
\d
[0-9]
。如果我答对了,您需要
'^\d+/\d+/\d+'
或转义文字:
E'^\\d+/\\d+/\\d+'
谢谢pozs“E'^\\d+/\\d+/\\d+/\\d+”,它对我有用。:-)是的,我错过了\d和[0-9]是一样的。