如果我在 Postgresql 9.1 列中有这个:
foo foo <th id="ddd"> foo foo <th id="www"> foo
我希望它更新为:
foo foo <th> foo foo <th> foo
我试过 regex_replace,但我没有成功。
如果我在 Postgresql 9.1 列中有这个:
foo foo <th id="ddd"> foo foo <th id="www"> foo
我希望它更新为:
foo foo <th> foo foo <th> foo
我试过 regex_replace,但我没有成功。
假设你有一个这样的表:
CREATE TABLE table1
(
a character varying NOT NULL,
...
)
您可以使用以下 regexp_replace:
update table1 set a = regexp_replace(a, '(.*?)<(\w+)\s+.*?>(.*)', '\1<\2>\3', 'g');
该'g'
标志表示替换所有匹配的模式,而不仅仅是第一个。
使用此输入:
foo foo <th id="ddd"> foo foo <th id="www"> foo<div id="hey">
我得到以下输出:
foo foo <th> foo foo <th> foo<div>