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
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 |