Postgresql Regexp_replace 组

Postgresql Regexp_replace group

对不起我的英语

我有这个问题

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

我需要return这样的东西

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

"OBLIG:"后面的数字应该是最后4位

有什么想法吗?

你快到了。

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

当然,这假设您总是每个号码至少有 4 位数字。