Regex para encontrar todas las URLs en un texto

Usa /https?:\/\/[^\s<>"']+/g para encontrar cada coincidencia en un texto. Cada ejemplo de abajo está probado con el patrón, y puedes abrirlo en el Probador de Regex con las muestras ya cargadas.

Actualizado el

/https?:\/\/[^\s<>"']+/g
Abrir en el Probador de Regex

Texto de muestra

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

3 coincidencias

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

Cómo funciona el patrón

ParteSignificado
https?http o https
:\/\/El literal ://
[^\s<>"']+Todo hasta un espacio en blanco, un signo de mayor o menor que, o una comilla

Ejemplos 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];

Notas y limitaciones

La puntuación final, como un punto que cierra la oración, se captura como parte de la URL; recórtala con [.,;:!?)]+$ de cada coincidencia.

Preguntas frecuentes

¿Cuál es la regex para encontrar todas las URLs en un texto?
/https?:\/\/[^\s<>"']+/g — encuentra cada coincidencia en un texto. Consulta la tabla de arriba para ver qué hace cada parte.
¿Funciona en Python y PHP?
Sí: los ejemplos de código de arriba usan el mismo patrón con re en Python y las funciones preg en PHP.
¿Cómo pruebo esta regex?
Haz clic en «Abrir en el Probador de Regex»: el patrón, las banderas y el texto de muestra se cargan automáticamente, y las coincidencias se resaltan mientras editas.