Received: from localhost (unknown [200.46.208.211]) by mail.postgresql.org (Postfix) with ESMTP id 38627633FF2 for ; Tue, 1 Sep 2009 09:56:34 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by localhost (mx1.hub.org [200.46.208.211]) (amavisd-maia, port 10024) with ESMTP id 97008-08 for ; Tue, 1 Sep 2009 12:56:15 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail49.e.nsc.no (mail49.e.nsc.no [193.213.115.49]) by mail.postgresql.org (Postfix) with ESMTP id 0AEA3632364 for ; Tue, 1 Sep 2009 09:56:22 -0300 (ADT) Received: from [192.168.0.15] (062016185042.customer.alfanett.no [62.16.185.42]) (authenticated bits=0) by mail49.nsc.no (8.14.3/8.14.3) with ESMTP id n81CuIfJ029951; Tue, 1 Sep 2009 14:56:18 +0200 (MEST) From: "Leif B. Kristensen" To: Ian Barwick Subject: Re: Plpgsql: Assign regular expression match to variable Date: Tue, 1 Sep 2009 14:56:18 +0200 User-Agent: KMail/1.9.10 Cc: pgsql-sql@postgresql.org References: <200909011401.00231.leif@solumslekt.org> <1d581afe0909010536g6fdb57a0u87c8d748fb9067b6@mail.gmail.com> In-Reply-To: <1d581afe0909010536g6fdb57a0u87c8d748fb9067b6@mail.gmail.com> X-Face: %iea8o"[SI'kMDS.`hz7lU=?\^lC9J-]CVjo; f{4-C:$?uVUEjyN~uYFn%*aH_c3d09U>=?utf-8?q?x=0A=09TXtaoj=7EMV=2E8PgG7hik9=3BcCT2N6+u?=@Y{wH\p3*_f~FH9k,Wi74e[_l%.7b^'zJ)8S'^G<(=?utf-8?q?=3D=0A=09zw8=5CPMC3=27=7BKl9=2EzL*ks!b6wA?=,c~'F`k&Vq|ELDGa|4 X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-2.599 tagged_above=-10 required=5 tests=BAYES_00=-2.599 X-Spam-Level: X-Archive-Number: 200909/4 X-Sequence-Number: 33069 On Tuesday 1. September 2009, Ian Barwick wrote: >This seems to do what you want: > > my_int := (REGEXP_MATCHES(txt, E'^#(\\d+)'))[1]; Great! I had no idea that REGEXP_MATCHES() could do that kind of stuff. pgslekt=> select (REGEXP_MATCHES('#42 blabla', E'^#(\\d+)')) [1]::integer; regexp_matches ---------------- 42 (1 row) Thank you very much. -- Leif Biberg Kristensen | Registered Linux User #338009 Me And My Database: http://solumslekt.org/blog/