Здравствуйте!
У меня есть вот такая регулярка, которая со своей работой еще недавно справлялась на ура:
~^
# scheme
[-a-z0-9+.]++://
# username:password (optional)
(?:
[-a-z0-9$_.+!*\'(),;?&=%]++ # username
(?::[-a-z0-9$_.+!*\'(),;?&=%]++)? # password (optional)
@
)?
(?:
# ip address
\d{1,3}+(?:\.\d{1,3}+){3}+
| # or
# hostname (captured)
(
(?!-)[-a-z0-9]{1,63}+(?<!-)
(?:\.(?!-)[-a-z0-9]{1,63}+(?<!-)){0,126}+
)
)
# port (optional)
(?::\d{1,5}+)?
# path (optional)
(?:/.*)?
$~iDx
Но, как многие уже, наверное, слышали, у нас появился потрясающий домен.РФ
Буду премного благодарен за аналогичную регулярку (которая валидирует не только http(s)://сайт(точка)домен — таких и в гугле навалом), которая также пропустит и правильно написанные русскобуквенные адреса.