Нужно регулярное выражение (используя PHP) для соответствия доменному имени. Примеры:
http://sub.domain.com/somefolder/index.html -> domain.com somedomain.info -> somedomain.info http://anotherdomain.org/home -> anotherdomain.org www.subdomain.anothersubdomain.maindomain.com/something/ -> maindomain.com
Это может быть не работа для регулярных выражений, а для существующих инструментов на выбранном вами языке. Regexes – это не волшебная палочка, которую вы волнуете при каждой проблеме, которая связана со строками. Вероятно, вы захотите использовать существующий код, который уже был написан, протестирован и отлажен.
В PHP используйте функцию parse_url
.
Perl: модуль URI
.
Ruby: URI
модуль .
.NET: класс «Uri»
Вы также можете использовать это:
((?>[az\-0-9]{2,}\.){1,}[az]{2,8})(?:\s|/)
Он будет соответствовать всем доменным именам, найденным в данном тексте, и возвращать домен, найденный в первой группе.
Это анализирует полные URL-адреса, которые вы можете проверить, сопоставить объекты. 2-й элемент для имени домена
(http|ftp|https):\/\/([\w\-_]+(?:(?:\.[\w\-_]+)+))([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
Работает на меня 🙂