Texto 🔒 Roda no seu navegador — nenhum dado é enviado

Regex para URL

Encontre endereços web em um texto com um padrão curto e veja exatamente onde ele para antes de colocá-lo no código.

/ /
Texto de teste
Correspondências e grupos
As correspondências aparecem aqui...

Regex para URL

Tirar links de logs, exportações de chat ou texto raspado da web é trabalho para uma expressão regular, e o padrão deve ser curto o bastante para ser lido. Esta página abre o Testador de Regex com o padrão URL (http/https) da Biblioteca de padrões, https?:\/\/[^\s/$.?#][^\s]*, com as flags gi.

Como ler o padrão

ParteSignificado
https?http, com um s opcional
:\/\/Os dois-pontos e as duas barras, escapadas para que o padrão também funcione entre barras no código
[^\s/$.?#]O primeiro caractere do nome de host: qualquer um, menos espaço, barra, cifrão, ponto, interrogação ou cerquilha
[^\s]*Todo o resto até o próximo espaço
giEncontra todos os links, em maiúsculas ou minúsculas

O que ela pega e o que deixa passar

TextoResultado
https://logicutil.com/tool/regex-testerO endereço inteiro
http://example.org/page?q=1#topO endereço inteiro, com query e fragmento
http://localhost:8080/xO endereço inteiro, com a porta
HTTPS://EXAMPLE.COM/XCasa, por causa da flag i
https://例子.测试/路径Casa: domínios e caminhos não latinos são mantidos
Visit https://example.com.https://example.com., com o ponto final
(https://example.com/a)https://example.com/a), com o parêntese
www.example.comNenhuma correspondência: não há esquema
ftp://files.example.comNenhuma correspondência: só http e https

Uma versão mais rígida

Para deixar a pontuação final de fora, termine a correspondência com um lookahead: https?:\/\/[^\s/$.?#][^\s]*?(?=[\].,;:!?)]*(?:\s|$)). Ele pega o trecho mais curto seguido apenas de pontuação e depois de um espaço ou do fim do texto, então Visit https://example.com. dá https://example.com e (https://example.com/a) dá https://example.com/a. O preço é que um link que realmente termina em parêntese, como alguns endereços da Wikipedia, perde esse parêntese.

Encontrar links não é validá-los

Um padrão como este responde "este texto contém algo que parece um link?", e não "este é um endereço que funciona?". Para um único valor em JavaScript, new URL(value) é mais rígido: ele lança uma exceção com https:// sem nenhum host. Use a regex para encontrar candidatos no texto e deixe new URL() ou o seu servidor decidir.

Páginas relacionadas

Transforme os links encontrados em Markdown com [$&]($&) na página de localizar e substituir com regex, e veja como as flags se comportam no testador de regex JavaScript. Endereços de e-mail têm armadilhas próprias, tratadas no guia de regex para e-mail.

Guias relacionados