Todos aqui parecem se concentrar no .com
ou .net
, mas os domínios nem sempre terminam com .com
ou .net
... no entanto, eles sempre terminam antes do /
.
Primeiro, encontre onde o nome do host começa:
=FIND("://", A1) + LEN("://")
=FIND("://", A1) + 3
Em seguida, encontre a primeira barra depois - é aí que o nome do host termina :
=FIND("/", A1, FIND("://", A1) + 3)
Ou, caso não haja nenhum caminho:
=IFERROR(FIND("/", A1, FIND("://", A1) + 3), LEN(A1) + 1)
E extraia tudo entre:
=MID(A1;FIND("://";A1)+3;IFERROR(FIND("/";A1;FIND("://";A1)+3);LEN(A1)+1)-(FIND("://";A1)+3))
A1: https://www.example.com/foo/bar
A2: =FIND("://";A1)+3
A3: =IFERROR(FIND("/";A1;A2);LEN(A1)+1)
A4: =MID(A1;A2;A3-A2)
Se você quiser descartar o componente de domínio mais à esquerda, use FIND(".",A1)
:
=MID(A1;FIND(".";A1)+1;IFERROR(FIND("/";A1;FIND(".";A1)+1);LEN(A1)+1)-(FIND(".";A1)+1))
A1: https://www.example.com/foo/bar
A2: =FIND(".";A1)+1
A3: =IFERROR(FIND("/";A1;A2);LEN(A1)+1)
A4: =MID(A1;A2;A3-A2)
Para o Salesforce, sem verificações de erros:
=MID(A1,FIND("://",A1)+3,FIND("/",A1,FIND("://",A1)+3)-(FIND("://",A1)+3))
=MID(A1,FIND(".",A1)+1,FIND("/",A1,FIND(".",A1)+1)-(FIND(".",A1)+1))
Observação: esse ainda tem algumas suposições - por exemplo, não funcionará corretamente se os URLs tiverem username@domain
ou username:password@domain
. A versão FIND(".")
também assume que há pelo menos dois componentes de domínio e não funcionará corretamente com https://example/foo
- ele precisa de algumas verificações adicionais de IFERROR () para isso.