Re: Manejo de strings en consulta

From: "Gustavo" <gustavor(at)intercomgi(dot)net>
To: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Manejo de strings en consulta
Date: 2008-01-17 15:38:36
Message-ID: 005a01c8591f$0d17f030$7901a8c0@Maquina
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Alvaro, finalmente y gracias a tu ayuda pude hacer andar la consulta

Escape los caracteres [ ] { } ( ) + y *

La consulta quedó asi:

SELECT E'C:\\Documents and Settings\\Gustav\\Escritorio\\Taller
UML\\RealizarReserva\\DigActividades_RReserva.pdf'
~ ('^' || regexp_replace(full_path, E'([\\\\*.(){}+\\\[])', e'\\\\\\1',
'g')) from
servicio.recurso;

SI bien la pude hacer andar me quedo la duda sobre como se escapan los
caracteres [ y ]. En el pattern a reemplazar tuve que agregar \\\[ para que
funcionase. Si le agregaba 4 barras anda igual.Quedaron 3 corchetes. Me da
mucha duda si estoy escapando bien estos caracteres y si va a funcionar
correctamente. Si tienes alguna referencia sobre como trabajar el escapado
de caracteres me sería de mucha utilidad

Gracias de nuevo y saludos

Gustavo

IntercomgiGustavo Rodriguez Departamento de Investigación y Desarrollo
GIRONA Passeig d'Olot, 68-70 · 17006 · Tel: + 34 972 20 35 75 · Fax: + 34
972 20 41 16 TANDIL 9 de Julio 388, 5º · 7000 · Tel: + 54 2293 425953 ·
Tel/Fax: + 54 2293 436947 gustavo(dot)rodriguez(at)respaldum(dot)com ·
www.respaldum.com Backup online
----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
To: "Gustavo" <gustavor(at)intercomgi(dot)net>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Monday, January 14, 2008 10:08 AM
Subject: Re: [pgsql-es-ayuda] Manejo de strings en consulta

Gustavo escribió:
> Alvaro, gracias por tu respuesta. Me orientó mucho, aunque aun no puedo
> hacer andar la consulta. No soy muy bueno con las expresiones regulares
>
> Estuve averiguando y tengo que escapar todos los caracteres especialesm
> salvo / : ? "< > |

¿Y cuales son los caracteres especiales?

> Estoy probadno con esta consulta y no se como ahcer para escapar ademas de
> las barras los paréntesis. Se me confunde el numero de barras que tengo
> que poner. Como tendría que tratar esto???
>
> select
> E'C:\\Documents and Settings\\Gustavo\\1)Software Architecture
> Document.doc' ~
> ('^' || regexp_replace(E'C:\\Documents and Settings\\Gustavo\\1)',
> e'[\\\\]', e'\\\\\\\\', 'g'))

¿No viste mi ejemplo de más abajo? Este reemplaza los siguientes: \ * .
() { }

> select full_path,
> E'C:\\Documents and
> Settings\\Gustav\\Escritorio\\TallerUML\\12-09\\Entrega2\\Software
> Architecture Document.doc' ~ ('^' || regexp_replace(full_path,
> e'([\\\\*.(){}])', e'\\\\\\1', 'g')), ('^' || regexp_replace(full_path,
> e'([\\\\*.(){}])', e'\\\\\\1', 'g'))
> from recurso;

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.19.2/1223 - Release Date: 13/01/2008
20:23

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Pablo Braulio 2008-01-17 16:13:47 Re: Intentando hacer un insert con un trigger.
Previous Message Raul Andres Duque 2008-01-17 14:42:38 Ejemplo Mapserver/postgis