我有一个表,其中包含许多行,其中包含一个包含URL的列。 URL的格式为:
http://one.example1.com:9999/dotFile.com
我想用http://example2.com/dotFile.com
替换该列中的所有匹配项,同时保留以下内容后的所有内容:9999。我在regexp_matches和regexp_replace上找到了一些文档,但我无法完全理解它。
答案 0 :(得分:57)
要替换固定字符串,请使用简单的replace()
函数。
要替换动态字符串,您可以使用regexp_replace()
,如下所示:
UPDATE
YourTable
SET
TheColumn = regexp_replace(
TheColumn, 'http://[^:\s]+:9999(\S+)', 'http://example2.com\1', 'g'
)
答案 1 :(得分:30)
如果您知道该网址,则不必使用正则表达式。 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
你可以尝试:
replace(yourcolumn, 'one.example1.com:9999','example2.com')