Postgresql Regexp_replace组

时间:2015-06-01 21:10:16

标签: postgresql regexp-replace

对不起我的英文

我有这个查询

select regexp_replace('Hello OBLIG: 451451, world OBLIG: 12123456789, Task OBLIG: 789456123, world ', '(OBLIG: )([^,]*)', '\1\2' , 'g')

我需要返回类似这样的内容

Hello OBLIG: 1451, world OBLIG: 6789, Task OBLIG: 6123, world

“OBLIG:”之后的数字应该是最后4位

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你快到了。

select regexp_replace(
    'Hello OBLIG: 451451, world OBLIG: 12123456789, Task OBLIG: 789456123, world ', 
    '(OBLIG: )([[:digit:]]*)([[:digit:]]{4})', '\1\3' ,
    'g'
);

当然,这假设您始终每个号码至少有4位数。