Discussion:
[GENERAL] how to replace last 4 digital phone number into star using regexp_replace?
(too old to reply)
sunpeng
2016-08-05 10:35:58 UTC
Permalink
hi, friends,
Our phone number format is 11 digital, i want to replace last 4 digital
into star, for example:
Replace this string including 11 digital phone number:
'18910180000,13910180000,232,abc'
into:
'1891018****,1391018****,232,abc'
I try to use:
select
regexp_replace('18910180000,13910180000,232,abc','[0-9]{7}(\d+)','****','g')
But it doesn't work, it will return:
"****,****,232,abc"
Can anyone help me? Thanks a million!

Best Regards
peng
Michail Shurutov
2016-08-05 10:48:44 UTC
Permalink
You should grouping first 7 digits to keep "([0-9]{7})" and
replace last 4 digits \d{4}:
***@postgres=# select
regexp_replace('18910180000,13910180000,232,abc','([0-9]{7})\d{4}',E'\\1****','g')
;
regexp_replace
---------------------------------
1891018****,1391018****,232,abc
(1 row)

Time: 73,528 ms
Post by sunpeng
hi, friends,
Our phone number format is 11 digital, i want to replace last 4
'18910180000,13910180000,232,abc'
'1891018****,1391018****,232,abc'
select
regexp_replace('18910180000,13910180000,232,abc','[0-9]{7}(\d+)','****','g')
"****,****,232,abc"
Can anyone help me? Thanks a million!
Best Regards
peng
--
WBR, Michail Shurutov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
--
Sent via pgsql-general mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
Loading...