我有一个表,其中包含许多行,其中的列包含 URL。URL 的格式为:
http://one.example1.com:9999/dotFile.com
我想替换该列中的所有匹配项,http://example2.com/dotFile.com
同时保留 :9999 之后的所有内容。我找到了一些关于 regexp_matches 和 regexp_replace 的文档,但我不能完全理解它。
我有一个表,其中包含许多行,其中的列包含 URL。URL 的格式为:
http://one.example1.com:9999/dotFile.com
我想替换该列中的所有匹配项,http://example2.com/dotFile.com
同时保留 :9999 之后的所有内容。我找到了一些关于 regexp_matches 和 regexp_replace 的文档,但我不能完全理解它。
要替换固定字符串,请使用简单replace()
函数。
要替换动态字符串,您可以regexp_replace()
这样使用:
UPDATE
YourTable
SET
TheColumn = regexp_replace(
TheColumn, 'http://[^:\s]+:9999(\S+)', 'http://example2.com\1', 'g'
)
如果您知道网址,则不必使用正则表达式。replace() 函数应该适合你:
replace(string text, from text, to text)
Replace all occurrences in string of substring from with substring to
example: replace('abcdefabcdef', 'cd', 'XX') abXXefabXXef
你可以试试:
UPDATE yourtable SET
yourcolumn = replace(yourcolumn, 'one.example1.com:9999','example2.com')
;