From: | Terry Lee Tucker <terry(at)esc1(dot)com> |
---|---|
To: | PostgreSQL-general <pgsql-general(at)postgresql(dot)org> |
Subject: | Regular Expression Question |
Date: | 2005-12-03 11:48:59 |
Message-ID: | 200512030648.59069.terry@esc1.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
RE Gurus:
I have a situation where I need to extract a couple pieces of information from
a string. The string, if entered perfectly by the user, would look someting
like this: DUN: 006235835 SID: KT-3616*
I need to extract the 006235835 into one variable and the KT-3616 into
another. Both "numbers" can possibly be something other than numbers alone as
in the SID: part of the string above. I have come up with a way of extracting
both pieces of information where, at least in my mind, the key parameters are
the colon (:) and a space, as in the first case, or asterik (*), as in the
second case, marking the end of the string to extract.
This one extracts the first value:
rnd=# select substring ('DUN: 006235835 SID: KT-3616*' from '^.+?:(.+?) ');
substring
------------
0062358
(1 row)
This one extracts the second value;
rnd=# select substring ('DUN: 006235835 SID: KT-3616*' from
'^.+?:.+?:(.+?)\\*');
substring
-----------
KT-3616
(1 row)
I keep thinking there is a better way to do this. It has taken me several
hours just to get to this point. So, I would love to see any suggestions as
to improvments on this. I just know it could be better implemented.
rnd=# select version();
version
--------------------------------------------------------------------------------------------------------------
PostgreSQL 7.4.6 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) 3.2.3
20030502 (Red Hat Linux 3.2.3-49)
(1 row)
Thanks for the input...
From | Date | Subject | |
---|---|---|---|
Next Message | stig erikson | 2005-12-03 14:06:07 | news.postgresql.org slow |
Previous Message | chidambaramchand | 2005-12-03 11:40:15 | GENERAL] unsubscribe |