Texto 🔒 Se ejecuta en tu navegador — no se envían datos

Regex para URL

Encuentre direcciones web en un texto con un patrón corto y vea exactamente dónde se detiene antes de ponerlo en su código.

/ /
Texto de prueba
Coincidencias y grupos
Las coincidencias aparecen aquí...

Regex para URL

Extraer enlaces de logs, exportaciones de chats o texto extraído de la web es tarea de una expresión regular, y el patrón debería ser lo bastante corto para leerlo. Esta página abre el Probador de Regex con el patrón URL (http/https) de la Biblioteca de patrones, https?:\/\/[^\s/$.?#][^\s]*, con las banderas gi.

Cómo se lee el patrón

ParteSignificado
https?http, con una s opcional
:\/\/Los dos puntos y las dos barras, escapadas para que el patrón también funcione entre barras en el código
[^\s/$.?#]El primer carácter del nombre de host: cualquiera salvo espacio, barra, signo de dólar, punto, interrogación o almohadilla
[^\s]*Todo lo demás hasta el siguiente espacio
giEncuentra todos los enlaces, en mayúsculas o minúsculas

Qué detecta y qué se le escapa

TextoResultado
https://logicutil.com/tool/regex-testerLa dirección completa
http://example.org/page?q=1#topLa dirección completa, con la consulta y el fragmento
http://localhost:8080/xLa dirección completa, con el puerto
HTTPS://EXAMPLE.COM/XCoincide, gracias a la bandera i
https://例子.测试/路径Coincide: se conservan los dominios y las rutas no latinos
Visit https://example.com.https://example.com., con el punto
(https://example.com/a)https://example.com/a), con el paréntesis
www.example.comSin coincidencia: no hay esquema
ftp://files.example.comSin coincidencia: solo http y https

Una versión más estricta

Para dejar fuera la puntuación final, termine la coincidencia con un lookahead: https?:\/\/[^\s/$.?#][^\s]*?(?=[\].,;:!?)]*(?:\s|$)). Toma el tramo más corto al que solo siguen signos de puntuación y después un espacio o el final del texto, así que Visit https://example.com. da https://example.com y (https://example.com/a) da https://example.com/a. El precio es que un enlace que de verdad termina en paréntesis, como algunas direcciones de Wikipedia, lo pierde.

Encontrar enlaces no es validarlos

Un patrón como este responde a "¿contiene este texto algo que parece un enlace?", no a "¿es esta una dirección que funciona?". Para un solo valor en JavaScript, new URL(value) es más estricto: lanza una excepción con https:// sin ningún host. Use la regex para encontrar candidatos en el texto y deje que new URL() o su servidor decidan.

Páginas relacionadas

Convierta los enlaces encontrados en Markdown con [$&]($&) en la página de buscar y reemplazar con regex, y vea cómo se comportan las banderas en el probador de regex JavaScript. Las direcciones de correo tienen sus propias trampas, tratadas en la guía de regex para email.

Guías relacionadas