Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

Re: regexp_replace: LF, CR, or tab


  • From: Bastiaan Wakkie <bwakkie(at)gmail(dot)com>
  • To: Osvaldo Kussama <osvaldo(dot)kussama(at)gmail(dot)com>
  • Cc: seiliki(at)so-net(dot)net(dot)tw, pgsql-general(at)postgresql(dot)org
  • Subject: Re: regexp_replace: LF, CR, or tab
  • Date: Sun, 28 Feb 2010 12:43:04 +0100
  • Message-id: <4B8A56C8.3000509@gmail.com> <text/plain>

Just for clarity: In the documentation
(http://www.postgresql.org/docs/8.4/static/functions-matching.html#FUNCTIONS-POSIX-REGEXP)
is mentioned "Flag g causes the function to find each match in the
string, not only the first one, and return a row for each such match. "
So in your example it was only matching \r so A\n\tB was returned

Cheers,

Bastiaan



Osvaldo Kussama wrote:
> 2010/2/27  <seiliki(at)so-net(dot)net(dot)tw>:
>   
>> Hi!
>>
>> I am trying to replace characters '\r', '\n', or '\t' with space character ' '. As an example, I want string "A\t\n\rB" becomes "AB".  The following statement seems to be not working. What mistake have I made?
>>
>> TIA
>>
>> CN
>> ========
>>
>> select regexp_replace(E'A\r\n\tB',E'[\r\n\t]',' ');
>>  regexp_replace
>> ----------------
>>  A
>>         B
>> (1 row)
>>
>>     
>
>
> Try:
> select regexp_replace(E'A\r\n\tB',E'[\r\n\t]',' ','g');
>
> Osvaldo
>
>   



Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group