Regex para encontrar todas as URLs em texto

Use /https?:\/\/[^\s<>"']+/g para encontrar todas as correspondências em um texto. Cada exemplo abaixo foi testado com o padrão, e você pode abri-lo no Regex Tester com os textos de exemplo já carregados.

Atualizado em

/https?:\/\/[^\s<>"']+/g
Abrir no Regex Tester

Texto de exemplo

Docs: https://devpack.app/regex-tester and http://example.com/path?q=1. See <a href="https://example.org/page">this</a> too.

3 correspondências

https://devpack.app/regex-tester http://example.com/path?q=1. https://example.org/page

Como o padrão funciona

ParteSignificado
https?http ou https
:\/\/O literal ://
[^\s<>"']+Tudo até um espaço em branco, um colchete angular ou uma aspas

Exemplos de código

JavaScript

const matches = text.match(/https?:\/\/[^\s<>"']+/g) ?? [];

Python

import re

matches = re.findall(r'''https?://[^\s<>"']+''', text)

PHP

preg_match_all('/https?:\/\/[^\s<>"\']+/', $text, $m);
$matches = $m[0];

Observações e limitações

A pontuação final, como um ponto que encerra a frase, é capturada como parte da URL; remova [.,;:!?)]+$ de cada correspondência.

Perguntas frequentes

Qual é a regex para encontrar todas as URLs em um texto?
/https?:\/\/[^\s<>"']+/g — ela encontra todas as correspondências em um texto. Veja a tabela acima para entender o que cada parte faz.
Funciona em Python e PHP?
Sim — os exemplos de código acima usam o mesmo padrão com re em Python e funções preg em PHP.
Como testo essa regex?
Clique em “Abrir no Regex Tester” — o padrão, as flags e o texto de exemplo são carregados automaticamente, e as correspondências são destacadas conforme você edita.