Самое близкое - перечислить список возможных доменов первого уровня, например так:
([a-zA-Z0-9-]+\.)+(com|net|org|ru|...)
В последние годы дело осложняется популярностью gTLD и nTLD. Вот например, строка "my.coffee" - это домен или пропущенный пробел? Оказывается, его
можно зарегистрировать.
Для надежности я бы поступал так - если строка начинается с
www
,
http
или имеет слэши, скорее всего это ссылка и там можно использовать любой домен. Если просто строка из двух слов, разделенных точками - то смотреть по ограниченному списку известных доменов первого уровня.