Re: REGEXP_REPLACE woes - Mailing list pgsql-general

From Leif B. Kristensen
Subject Re: REGEXP_REPLACE woes
Date
Msg-id 200806101459.53074.leif@solumslekt.org
Whole thread Raw
In response to Re: REGEXP_REPLACE woes  ("Leif B. Kristensen" <leif@solumslekt.org>)
Responses Re: REGEXP_REPLACE woes  (Michael Fuhr <mike@fuhr.org>)
Re: REGEXP_REPLACE woes  ("Leif B. Kristensen" <leif@solumslekt.org>)
List pgsql-general
I put the code into a function, link_expand():

CREATE OR REPLACE FUNCTION link_expand(TEXT) RETURNS TEXT AS $$
SELECT REGEXP_REPLACE($1,
             E'\\[p=(\\d+)\\|(.+?)\\]',
             E'<a href="./family.php?person=\\1">\\2</a>', 'g');
$$ LANGUAGE sql STABLE;

pgslekt=> select link_expand('[p=123|John Smith]');
                   link_expand
--------------------------------------------------
 <a href="./family.php?person=123">John Smith</a>
(1 row)

So far, so good. But look here:

pgslekt=> select link_expand('[p=123|John Smith] and [p=456|Jane Doe]');
                              link_expand
-----------------------------------------------------------------------
 <a href="./family.php?person=123">John Smith] and [p=456|Jane Doe</a>
(1 row)

Hey, I told it not to be greedy, didn't I?
--
Leif Biberg Kristensen | Registered Linux User #338009
http://solumslekt.org/ | Cruising with Gentoo/KDE
My Jazz Jukebox: http://www.last.fm/user/leifbk/

pgsql-general by date:

Previous
From: "Leif B. Kristensen"
Date:
Subject: Re: REGEXP_REPLACE woes
Next
From: Sim Zacks
Date:
Subject: encoding confusion