Regex pour trouver toutes les URL dans un texte

Utilisez /https?:\/\/[^\s<>"']+/g pour trouver toutes les correspondances dans un texte. Chaque exemple ci-dessous a été testé avec ce modèle, et vous pouvez l'ouvrir dans le testeur de regex avec les exemples préchargés.

Mis à jour le

/https?:\/\/[^\s<>"']+/g
Ouvrir dans le testeur de regex

Texte d'exemple

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

3 correspondances

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

Comment fonctionne le modèle

PartieSignification
https?http ou https
:\/\/Le littéral ://
[^\s<>"']+Tout caractère jusqu'à un espace, un chevron ou un guillemet

Exemples de code

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

Remarques et limites

La ponctuation finale, comme un point de fin de phrase, est capturée dans l'URL ; supprimez-la de chaque correspondance à l'aide de [.,;:!?)]+$.

Questions fréquentes

Quelle est la regex pour trouver toutes les URL dans un texte ?
/https?:\/\/[^\s<>"']+/g — elle trouve toutes les correspondances dans un texte. Consultez le tableau ci-dessus pour le rôle de chaque partie.
Fonctionne-t-elle en Python et en PHP ?
Oui — les exemples de code ci-dessus utilisent le même modèle avec re en Python et les fonctions preg en PHP.
Comment tester cette regex ?
Cliquez sur « Ouvrir dans le testeur de regex » : le modèle, les drapeaux et le texte d'exemple se chargent automatiquement, et les correspondances s'affichent en surbrillance pendant que vous modifiez.