Received: from localhost (unknown [200.46.204.182]) by postgresql.org (Postfix) with ESMTP id 8F3E49F9B11 for ; Sun, 28 Oct 2007 08:42:55 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.182]) (amavisd-maia, port 10024) with ESMTP id 66157-05 for ; Sun, 28 Oct 2007 08:42:47 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.5 Received: from 137086.vserver.de (vs137086.vserver.de [62.75.137.86]) by postgresql.org (Postfix) with ESMTP id 750969F9AE4 for ; Sun, 28 Oct 2007 08:42:51 -0300 (ADT) Received: from a-kretschmer.de (p54B38B9E.dip0.t-ipconnect.de [84.179.139.158]) (authenticated bits=0) by 137086.vserver.de (8.12.8/8.12.8) with ESMTP id l9SBgmYl019898 for ; Sun, 28 Oct 2007 12:42:49 +0100 Received: from kretschmer by a-kretschmer.de with local (Exim 4.61) (envelope-from ) id 1Im6XX-0001KM-Lv for pgsql-sql@postgresql.org; Sun, 28 Oct 2007 12:42:47 +0100 Date: Sun, 28 Oct 2007 12:42:47 +0100 From: Andreas Kretschmer To: pgsql-sql@postgresql.org Subject: Re: Removing whitespace using regexp_replace Message-ID: <20071028114247.GA1327@KanotixBox> References: Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-OS: Debian/GNU Linux - weil ich es mir Wert bin! X-GPG-Fingerprint: EE16 3C01 7B9C 10F7 2C8B 3B86 4DB3 D9EE 7F45 84DA X-Message-Flag: "Windows" is not the answer. "Windows" is the question and the answer is "no"! X-Lugdd: Gerd Kube X-Info: My name is root. Just root. And I am licensed to kill -9 User-Agent: mutt-ng 1.5.9i (Linux) X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200710/136 X-Sequence-Number: 29508 Thomas Kellerer schrieb: > Hi, > > I have a column with the datatype "text" that may contain leading > whitespace (tabs, spaces newlines, ...) and I would like to remove them all > (ideally leading and trailing). You can use trim() for that: select 'x' || trim(both '\t' from trim(both ' ' from ' \t\tfoo bar ')) || 'x'; (for testing with 'x' around the result) > > I tried > > SELECT regexp_replace(myfield, '\A\s*', '') > FROM mytable; For regexp_replace() you need an extra parameter 'g' like below: test=*# select 'x' || regexp_replace(regexp_replace(' \t\tfoo bar ', '^[ \t]+','','g'),'[ \t]+$','','g') || 'x'; ^^^ ^^^ Andreas -- Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. (Linus Torvalds) "If I was god, I would recompile penguin with --enable-fly." (unknow) Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°