Соответствие URL IDN
Мне нужна помощь в создании регулярного выражения, которое может правильно соответствовать URL внутри свободного текста.
схемаОдно из следующего:FTP, HTTP, HTTPS (являетсяFTPS протокол?)по желаниюпользователь (и необязательнопроходят)хозяин (с поддержкой ИДИ)Поддержка дляWWW а такжесуб-домен (ов) (с поддержкой ИДИ)базовая фильтрация TLD ([a-zA-Z]{2,6}
мне кажется достаточно)по желаниюпорт номердорожка (необязательно, с поддержкой символов Unicode)запрос (необязательно, с поддержкой символов Unicode)фрагмент (необязательно, с поддержкой символов Unicode)Вот что я мог узнать о поддоменах:
«Субдомен» выражает относительную зависимость, а не абсолютную зависимость: например, wikipedia.org содержит поддомен домена org, а en.wikipedia.org содержит поддомен домена wikipedia.org. Теоретически, это подразделение может опуститься до 127 уровней, и каждая метка DNS может содержать до 63 символов, если полное доменное имя не превышает общую длину 255 символов.
Что касается самого доменного имени, я не мог найти надежный источник, но я думаю, что регулярное выражениедля не-ИДИ (Я не уверен, как написать версию, совместимую с IDN), это что-то вроде:
[0-9a-zA-Z][0-9a-zA-Z\-]{2,62}
Может ли кто-нибудь помочь мне с этим регулярным выражением или указать мне правильное направление?