如果我在Postgresql 9.1列中有这个:
foo foo <th id="ddd"> foo foo <th id="www"> foo
我希望它更新到这个:
foo foo <th> foo foo <th> foo
我尝试过regex_replace,但我还没有成功。
答案 0 :(得分:1)
假设你有一个这样的表:
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>