1

对不起我的英语

我有这个查询

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 位数字

任何的想法?

4

1 回答 1

2

你快到了。

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

当然,这是假设您始终在每个数字中至少有 4 位数字。

于 2015-06-02T06:30:43.353 回答