替换主机名正则表达式

时间:2018-02-07 09:10:16

标签: sql regex hostname

我需要提取主机名并将其替换为 {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

2 个答案:

答案 0 :(得分:1)

您可以使用以下方法:

SELECT regexp_replace(str, '://[^.:]+', '://{HOST_NAME}', 1) from dual

请参阅regex demo

://[^.:]+匹配:

  • :// - 文字子字符串
  • [^.:]+ - 除.:以外的一个或多个字符

查看online demo

enter image description here

答案 1 :(得分:0)

(?<=[\/]{2})([a-z-]{1,})(?=[\.|:])

怎么样?

Demo