регулярное выражение для соответствия доменному имени

Нужно регулярное выражение (используя 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\-\@?^=%&/~\+#])? 

Работает на меня 🙂