替换主机名正则表达式

Replace hostname regex

我需要提取主机名并将其替换为 {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})([a-z-]{1,})(?=[\.|:])

Demo

您可以使用以下方法:

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

参见regex demo

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

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

看到 online demo: