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 a C 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" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
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 Berkus
 Aglio Database Solutions
 San Francisco


---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faqs/FAQ.html




---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Reply via email to