PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgresql – Bereinigung von HTML-Tags in der Mitte des Strings

Angenommen, Sie haben eine Tabelle wie diese:

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

Sie können das folgende regexp_replace verwenden:

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

Das 'g' Flag zeigt an, dass alle übereinstimmenden Muster ersetzt werden sollen, nicht nur das erste.

Mit dieser Eingabe:

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

Ich bekomme folgende Ausgabe:

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