我需要提取主机名并将其替换为 {HOST_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/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
答案 0 :(得分:1)
您可以使用以下方法:
SELECT regexp_replace(str, '://[^.:]+', '://{HOST_NAME}', 1) from dual
请参阅regex demo。
://[^.:]+
匹配:
://
- 文字子字符串[^.:]+
- 除.
和:
以外的一个或多个字符查看online demo:
答案 1 :(得分:0)
(?<=[\/]{2})([a-z-]{1,})(?=[\.|:])