Właściwie pasuje do adresu URL IDN

Potrzebuję pomocy w budowaniu wyrażenia regularnego, które może odpowiednio dopasować adres URL wewnątrz wolnego tekstu.

schematJeden z następujących:ftp, http, https (jestftps protokół?)opcjonalnyużytkownik (i opcjonalnieprzechodzić)gospodarz (z obsługą IDN)wsparcie dlawww isubdomeny (z obsługą IDN)podstawowe filtrowanie TLD ([a-zA-Z]{2,6} wystarczy, że myślę)opcjonalnyPort numerścieżka (opcjonalnie, z obsługą znaków Unicode)pytanie (opcjonalnie, z obsługą znaków Unicode)fragment (opcjonalnie, z obsługą znaków Unicode)

Oto, co mogłem dowiedzieć się o subdomenach:

„Subdomena” wyraża względną zależność, a nie bezwzględną zależność: na przykład wikipedia.org zawiera subdomenę domeny org, a en.wikipedia.org zawiera subdomenę domeny wikipedia.org. Teoretycznie ten podział może sięgać do 127 poziomów, a każda etykieta DNS może zawierać do 63 znaków, o ile cała nazwa domeny nie przekracza całkowitej długości 255 znaków.

Jeśli chodzi o samą nazwę domeny, nie mogłem znaleźć żadnego wiarygodnego źródła, ale myślę, że wyrażenie regularnedla nie-IDN (Nie wiem, jak napisać wersję zgodną z IDN) to coś w stylu:

[0-9a-zA-Z][0-9a-zA-Z\-]{2,62}

Czy ktoś może mi pomóc z tym wyrażeniem regularnym lub skierować mnie w dobrym kierunku?

questionAnswers(3)

yourAnswerToTheQuestion