Regex tìm tất cả URL trong văn bản

Dùng /https?:\/\/[^\s<>"']+/g để tìm mọi kết quả khớp trong một đoạn văn bản. Mọi ví dụ bên dưới đều đã được kiểm thử với mẫu này, và bạn có thể mở chúng trong Regex Tester với sẵn dữ liệu mẫu.

Cập nhật

/https?:\/\/[^\s<>"']+/g
Mở trong Regex Tester

Văn bản mẫu

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

3 kết quả khớp

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

Cách mẫu hoạt động

PhầnÝ nghĩa
https?http hoặc https
:\/\/Ký tự :// nguyên văn
[^\s<>"']+Mọi ký tự cho đến khoảng trắng, dấu ngoặc nhọn hoặc dấu nháy

Ví dụ 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];

Ghi chú và giới hạn

Dấu câu ở cuối, chẳng hạn dấu chấm kết thúc câu, sẽ bị bắt vào như một phần của URL; hãy dùng [.,;:!?)]+$ để cắt bỏ nó khỏi mỗi kết quả khớp.

Câu hỏi thường gặp

Regex để tìm tất cả URL trong văn bản là gì?
/https?:\/\/[^\s<>"']+/g — mẫu này tìm mọi kết quả khớp trong văn bản. Xem bảng phía trên để biết mỗi phần làm gì.
Có chạy được trong Python và PHP không?
Có — các ví dụ code phía trên dùng cùng mẫu này với re trong Python và các hàm preg trong PHP.
Làm sao để kiểm thử regex này?
Nhấn “Mở trong Regex Tester” — mẫu, cờ và văn bản mẫu sẽ tự động được tải, và các kết quả khớp được tô sáng khi bạn chỉnh sửa.