Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Reemplazar texto usando expresiones regulares

Estas en el tema de Reemplazar texto usando expresiones regulares en el foro de Mysql en Foros del Web. Hola y buenas dias, o buenas tardes, o buenas noches. Mi consulta es la siguiente: Como puedo reemplazar texto de una tabla de mysql usando ...
  #1 (permalink)  
Antiguo 01/06/2015, 07:11
 
Fecha de Ingreso: diciembre-2005
Mensajes: 17
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta Reemplazar texto usando expresiones regulares

Hola y buenas dias, o buenas tardes, o buenas noches.

Mi consulta es la siguiente:

Como puedo reemplazar texto de una tabla de mysql usando expresiones regulares

Tengo una tabla y tiene un campo que se llama:

descripcion

En ella esta una larga descripcion formateada con html, muchos tag en ellos esta:
Código:
p
class
span
Pero el que yo quiero sacar es:
Código:
<a href=
</a>
Pero la cadena de enlaces tiene diferentes url por ejemplo:
Código:
<a href="www.dominio.com/link1">texto1</a>
<a href="www.dominio.com/link_2">texto2</a>
<a href="www.dominio.com/enlac__3">texto3</a>
Y asi sucesivamente, me gustaria saber si se puede usar expresiones regulares para sacar todo el enlace y dejar el texto

Por ejemplo esto, pero hay mas enlaces diferentes:

Código HTML:
 Modif&iacute;quese el <a href="http://dominio.com/todas_disposiciones/1992/resoluciones/resolucion_33_92.php#ART. 14&deg;.">art&iacute;culo N&ordm; 14&ordm; de la Resoluci&oacute;n N&ordm; 33 del 14 de Mayo de 1992</a> 
Y dejar unicamente:

Código HTML:
art&iacute;culo N&ordm; 14&ordm; de la Resoluci&oacute;n N&ordm; 33 del 14 de Mayo de 1992
Lo unico que estoy viendo es:
Código SQL:
Ver original
  1. UPDATE 'nombre_tabla' SET nombre_campo= REPLACE(nombre_campo, 'string_a_encontrar', 'string_a_reemplazar');
  #2 (permalink)  
Antiguo 01/06/2015, 07:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Reemplazar texto usando expresiones regulares

La respuesta es NO.

NO puedes hacer una consulta capaz de reconcer los enlaces, ni siquiera con expresiones regulares, porque no tendrás jamás un patrón constante que aplique a todos y cada uno de los enlaces posibles que puedas hallar, salvo las etiquetas que mencionas.
Pero el problema es que deberías iterar no sólo los registors, sino la totalidad de cada uno de los contenidos de ese campo, para cad registro, a fin de realizar la tarea. Francamente es un tema absolutalemte ineficiente y de pésima performance para SQL.

No es la primera vez que alguien viene preguntando exactamente lo mismo y para el mismo uso, y la respuesta sigue siendo la misma: Es mucho más sencillo, y tiene s muchos recursos mas para hacerlo programáticamente. Pero no en la base de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: expresion, html, reemplazar, regular, update
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:13.