From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Rusel Fichi <rdfs(dot)ing(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Filtrar expresion regular entre rangos especificos |
Date: | 2015-07-09 22:50:49 |
Message-ID: | 20150709225049.GY3289@postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Rusel Fichi escribió:
> Ejemplo de la URL:
>
>
> <a href="
> http://dominio/noticia/21618-errores-del-mp-obligaron-a-la-justicia-a-descartar-algunos-casos-de-delitos-cambiarios">Ejemplo
> Noticia</a>
>
> En este caso debemos eliminar unicamente el id del enlace dentro de la
> etiqueta <a>
Si quieres ocultar información sobre tu dominio, no deberías dar un
título que se pueda buscar fácilmente en un buscador web ...
> Use:
>
> update article_article set content = regexp_replace(content,
> '1|2|3|4|5|6|7|8|9|0', '', 'g') WHERE position('item/' in content) > 0 and
> position('-' in content) > 1
Huy, eso no se ve nada bien.
> Hay forma de definir una rango de busqueda dentro del campo para reemplazar
> o eliminar un string o numero determinado? Como por ejemplo definir el
> rango de busqueda entre la etiqueta <a></a>
Meh.
Podrías agregar el <a> ... </a> en la expresión regular, pero ¿qué pasa
si el <a> está en una línea, el enlace en otra, y el </a> en una tercera
línea? Tu sistema no funcionaría para nada. Es más, aunque consigas
solucionar ese problema, cambiar los links dentro del HTML de
contrapunto.com no va a corregir los links que pueda haber en terceras
partes hacia tu sitio, como por ejemplo un tal www.google.com.
Realmente la única solución que parece razonable a este problema es usar
"redirects" en tu servidor web, y dejarlos permanentes. Por ejemplo, en
postgresql.org antes los links al archivo web de listas de correo eran
http://archives.postgresql.org/<nombre-de-lista>/<año-mes>/msgNNNNNN.php
y ahora son
http://archives.postgresql.org/message-id/fCAMiTfwLX6A6ud-e8MbvdsUmNoKwwc4sEjRvmmwmyPcE+LSuS1g@mail.gmail.com
¿Qué se hizo para preservar la funcionalidad de los links antiguos?
Simple: se creó una tabla en la base de datos con dos columnas, una de
ellas es <nombre-de-lista>/<año-mes>/msnNNNNN.php (o sea la dirección
antigua) y la otra columna es el message-id. Cuando se recibe un HTTP
GET para URLs del estilo antiguo, se busca en esa tabla el message-id
correspondiente y se hace un HTTP redirect. Problema solucionado. La
tabla tiene varios miles de URLs, pero hey, tenemos un sistema de
almacenamiento de datos súper efectivo que podemos usar ...
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Anthony Sotolongo | 2015-07-13 14:01:09 | duda sobre pgpool |
Previous Message | Rusel Fichi | 2015-07-09 21:58:32 | Filtrar expresion regular entre rangos especificos |