Tôi đã không thực hiện nhiều thử nghiệm về điều này, b ut nếu tôi hiểu những gì bạn đang yêu cầu, điều này sẽ là một điểm khởi đầu khá ...
([A-Za-z0-9-]+\.([A-Za-z]{3,}|[A-Za-z]{2}\.[A-Za-z]{2}|[A-za-z]{2}))\b
EDIT:
Để làm rõ, nó đang tìm kiếm:
một hoặc nhiều ký tự chữ số hoặc dấu gạch ngang, theo sau là dấu chấm chữ số
và sau đó là một trong ba điều ...
- ba hoặc nhiều ký tự alpha (tức là com/net/mil/coop, v.v.)
- hai ký tự alpha, theo sau là dấu chấm đen, theo sau là hai chữ cái khác (tức là co.uk)
- hai ký tự alpha (nghĩa là/uk/to, v.v.)
và ở cuối đó, ranh giới từ (\ b) có nghĩa là kết thúc chuỗi, dấu cách hoặc ký tự không phải chữ (trong ký tự từ regex thường là chữ số-alpha và dấu gạch dưới)).
Như tôi đã nói, tôi không thực hiện nhiều thử nghiệm, nhưng dường như đây là điểm nhảy hợp lý. Bạn có thể cần phải thử nó và điều chỉnh nó một số, và thậm chí sau đó, nó không chắc rằng bạn sẽ nhận được 100% cho tất cả các trường hợp thử nghiệm. Có những cân nhắc như tên miền Unicode và tất cả các loại kỹ thuật-hợp lệ-nhưng-bạn-có khả năng-không-gặp-trong-những điều hoang dã mà sẽ đi lên một regex đơn giản như thế này, nhưng điều này có thể sẽ nhận được bạn 90% + cách đó.
Kết quả sẽ là gì đối với 'sub.domain.google.co.uk'? –
Đó không phải là URL mà chỉ là tên miền (ngoại trừ lần cuối cùng chỉ là một chuỗi có thể được hiểu là tên miền cộng với đường dẫn URL). – Gumbo
@pekka "google.co.uk" như apps.facebook.com sẽ trả về facebook.com. @gumbo Đúng vậy. Họ chỉ là những ví dụ về những gì * có thể * được thông qua. Hầu hết sẽ là một url đầy đủ (tên miền phụ, tên miền, thư mục, tệp). – jamesmhaley