Sql 替换主机名正则表达式
我需要提取主机名并将其替换为{host\u name} 我用这个表达Sql 替换主机名正则表达式,sql,regex,hostname,Sql,Regex,Hostname,我需要提取主机名并将其替换为{host\u name} 我用这个表达 SELECT regexp_replace(str, '[\/]{2}(.*)[\.|:]', '{HOST_NAME}', 1) from dual str = http://localhost:8080/test str = https://test-app.uk.ru/test 预期结果: > http://localhost:8080/test -> http://{HOST_NAME}:8080/tes
SELECT regexp_replace(str, '[\/]{2}(.*)[\.|:]', '{HOST_NAME}', 1) from dual
str = http://localhost:8080/test
str = https://test-app.uk.ru/test
预期结果:
> http://localhost:8080/test -> http://{HOST_NAME}:8080/test
> https://test-app.uk.ru/test - > https://{HOST_NAME}.uk.ru/test
http://localhost:8080/test -> http:{HOST_NAME}8080/test
https://test-app.uk.ru/test - > https:{HOST_NAME}uk.ru/test
结果:
> http://localhost:8080/test -> http://{HOST_NAME}:8080/test
> https://test-app.uk.ru/test - > https://{HOST_NAME}.uk.ru/test
http://localhost:8080/test -> http:{HOST_NAME}8080/test
https://test-app.uk.ru/test - > https:{HOST_NAME}uk.ru/test
关于
(?您可以使用以下方法:
SELECT regexp_replace(str, '://[^.:]+', '://{HOST_NAME}', 1) from dual
看
://[^.:]+
匹配:
://
-文字子字符串
[^.:]+
-1个或多个字符,而不是
和:
见:
您使用的是哪种dbms?选择regexp_replace(str),(?)?