sql >> Base de Datos >  >> RDS >> PostgreSQL

Postgresql:limpia las etiquetas HTML en medio de la cadena

Asumiendo que tienes una tabla como esta:

CREATE TABLE table1
(
  a character varying NOT NULL,
  ...
)

Puede usar el siguiente regexp_replace:

update table1 set a = regexp_replace(a, '(.*?)<(\w+)\s+.*?>(.*)', '\1<\2>\3', 'g');

El 'g' indica que se deben reemplazar todos los patrones coincidentes, no solo el primero.

Con esta entrada:

foo foo <th id="ddd"> foo foo <th id="www"> foo<div id="hey">

Obtengo el siguiente resultado:

foo foo <th> foo foo <th> foo<div>