| From: | Greg Sabino Mullane <greg(at)endpoint(dot)com> |
|---|---|
| To: | "FBurgess(at)Radiantblue(dot)com" <FBurgess(at)Radiantblue(dot)com> |
| Cc: | "pgus-general(at)postgresql(dot)org" <pgus-general(at)postgresql(dot)org> |
| Subject: | Re: PostgreSQL POSIX regular expression problem |
| Date: | 2016-04-07 23:44:06 |
| Message-ID: | 20160407234406.GE4082@localhost.localdomain |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgus-general |
If you want to just pull out the numbers, do a direct regexp_replace with
some (\d\d\d)\D* like so:
select regexp_replace('my phone: (904)-867 5309 ', '.*(\d\d\d)\D*(\d\d\d)\D*(\d\d\d\d).*$', '\1-\2-\3');
To grab something after a specific string appears (e.g. "Corporate"), add it in but
make sure the first dot-star becomes non-greedy with a question mark:
select regexp_replace('my phone: 904 867 5309 [Corporate] (703)-555-1234',
'.*?Corporate.*(\d\d\d)\D*(\d\d\d)\D*(\d\d\d\d).*$', '\1-\2-\3');
--
Greg Sabino Mullane greg(at)endpoint(dot)com
End Point Corporation
PGP Key: 0x14964AC8
| From | Date | Subject | |
|---|---|---|---|
| Next Message | t.dalpozzo@gmail.com | 2016-10-14 11:22:55 | journaled FS and and WAL |
| Previous Message | FBurgess@Radiantblue.com | 2016-04-07 22:15:20 | Re: PostgreSQL POSIX regular expression problem |