Регулярное выражение для поиска всех URL в тексте

Используйте /https?:\/\/[^\s<>"']+/g, чтобы найти все совпадения в тексте. Каждый пример ниже проверен на этом шаблоне, а открыть его можно в Regex Tester с уже загруженными образцами.

Обновлено

/https?:\/\/[^\s<>"']+/g
Открыть в Regex Tester

Пример текста

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

3 совпадения

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

Как работает шаблон

ЧастьЗначение
https?http или https
:\/\/Буквальное ://
[^\s<>"']+Всё до пробельного символа, угловой скобки или кавычки

Примеры кода

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

Примечания и ограничения

Завершающие знаки препинания, например точка в конце предложения, попадают в URL; удалите [.,;:!?)]+$ из каждого совпадения.

Часто задаваемые вопросы

Какое регулярное выражение находит все URL в тексте?
/https?:\/\/[^\s<>"']+/g — оно находит все совпадения в тексте. Таблица выше объясняет, что делает каждая часть.
Работает ли это в Python и PHP?
Да — примеры кода выше используют тот же шаблон: модуль re в Python и функции preg в PHP.
Как протестировать это регулярное выражение?
Нажмите «Открыть в Regex Tester» — шаблон, флаги и образец текста загрузятся автоматически, а совпадения будут подсвечиваться по мере редактирования.