Postgres正则表达式和特殊字符

时间:2014-04-29 08:38:35

标签: regex postgresql postgresql-9.2

我正在使用posgresql,我遇到了正则表达式和特殊字符的问题。

select regexp_replace('asdf|asdf','|','.');

此函数返回:

.asdf|asdf

期望的输出:

asdf.asdf

我怎么解决?请帮助:)

1 个答案:

答案 0 :(得分:3)

|是正则表达式语法中的一个特殊字符,称为交替,它表示"或"。

你的正则表达式是在字符串的开头选择空字符串。

尝试转义它:

select regexp_replace('asdf|asdf','\|','.');

正如@pozs强调的那样,对于这个特定的任务,它更适合使用简单的replace

select replace('asdf|asdf','|','.');