Ben keyfi üst düzey uzantıları ile etki alanları için alt etki alanı ve etki kısmını ayıklamak istiyorum.
Böylece:
sub1.domain1.com -> Extract subdomain = sub1, domain = domain1.com
sub2.domain2.co.in -> Extract subdomain = sub2, domain = domain2.co.in
sub3.domain3.co.uk -> Extract subdomain = sub3, domain = domain3.co.uk
sub4.domain4.us -> Extract subdomain = sub4, domain = domain4.us
mydomain.com -> Extract alt alan = "", domain = mydomain.com
mydomain.co.in -> Extract alt alan = "", domain = mydomain.co.in
Ben son 5 karakter onları bir nokta (.) Varsa ben ölçerek kaba kuvvet yöntemini kullanarak bu yapabilirdi co.in / co.uk vs gibi TLD'lerinin nasıl başa çıkılacağı konusunda biraz karıştı, ama bir regex varsa düşünme Bunu yapmanın yolu.
NOT 1: TToni işaret ettiği gibi, belirsizlikler olabilir. Ancak, bazı kısıtlamaları koyacağız:
1) "Alan adı" bölümü (uzantısı olmadan) -> en-az 4 karakter olacak.
2) TLD uzatma parçası (. Com, co.in. Bize, vb) tek bir DOT zorunda kalırsınız ya da iki DOTS varsa, o zaman sondan bir önceki bölüm (alt TLD) atmost 3 karakter olacak.
Ben bu kısıtlamaları regex kullanarak sorun unambigious ve çözülebilir yapacak bir his var.
(Ayrıca, "www." Varsaymak zaten elimden olmuştur).
NOT 2:
Yukarıdaki kısıtlamalar Örnek
sub.dom.in -> domain = "sub.dom.in"
sub.dom1.in -> domain = "dom1.in", alt alan = "alt"
Bu adamcağız gelebilir, ama nedeni - tüm uzantıları tek DOT ya da sondan bir önceki bölüm ya da-max 3 karakter var, benim iç amaçlar için bunu istiyoruz, ve tüm etki onlara göre en az 4 karakter var, VE.
NOT 3: Ben bunun için regex kullanarak hataları olabilir bir his var. Dolayısıyla string arama yolu yapmayı düşünüyorum.
Saygılarımızla,
JP