Many thanks... got it now.
Example...
sox=# select * from regexpatt;pattern | description
---------+------------------------------------^b | starts with a B^a | starts with an A^c.*l$ | starts with
aC and ends with an L
(3 rows)
sox=# select description from regexpatt where 'bravo' ~ pattern; description
----------------starts with a B
(1 row)
sox=# select description from regexpatt where 'caramel' ~ pattern; description
------------------------------------starts with a C and ends with an L
(1 row)
"Josh Berkus" <josh@agliodbs.com> wrote in message
news:200308181611.27937.josh@agliodbs.com...
Moonstruck,
> I want to create a table of regular expression patterns (for assessing
> phone numbers), something like:
> CREATE TABLE CallType ( pattern varchar primary key,
> type varchar,
> rate int4);
> INSERT INTO CallType VALUES ('0[3-9]________','Interstate Call',50);
> INSERT INTO CallType VALUES ('9_______','Local Call',25);
> INSERT INTO CallType VALUES ('0011__________%','International Call',100);
PostgreSQL supports real Regular Expressions, via the ~ operator. See "~"
under "functions and operators", and then consult your favorite book or
online ressouce on how to compose regexps.
An example of "is not in 415 area code" would be
phone_no ~ '^415\d{7}'
which should be "415" at the beginning followed by at least 7 other digits.
(Folks, please correct my regex code if it's bad!)
The disadvantage to this approach is that it cannot be indexed.
--
-Josh BerkusAglio Database SolutionsSan Francisco
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faqs/FAQ.html