Re: Reverse pattern match.

From: "Moonstruck" <bogus(dot)email(at)pls-relpy-to(dot)group>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: Reverse pattern match.
Date: 2003-08-20 06:42:30
Message-ID: 3f431856$0$15134$afc38c87@news.optusnet.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

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" <josh(at)agliodbs(dot)com> wrote in message
news:200308181611(dot)27937(dot)josh(at)agliodbs(dot)com(dot)(dot)(dot)
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

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message zakkr 2003-08-20 06:57:34 Re: Wicked screensaver
Previous Message Josh Berkus 2003-08-20 00:12:10 Re: Inheritance or no inheritance, there is a question