场景:
表中有个字段存的是1个或者多个URL地址,现在需要把字段中所有URL中的IP和端口号替换成新的IP和端口号。
原始数据如下图:
需要将 ftps://192.168.85.222:990 替换成 http://233.146.24.111:9001
运行SQL:
select
old_fj,
regexp_replace(old_fj,'ftps://(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\:([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])','http://233.146.24.111:9001/buckets/jsscssmx') as new_fj
FROM
表名
运行结果:
总结:
最主要的是通过正则表达式把数据中的IP加端口识别出来
正则表达式如下:
(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\:([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])