Mutlak ve göreli URL'leri birbirinden ayıran bir Java yöntemi üzerinde çalışıyorum, bir tarayıcı adres çubuğunun katı bir URL ayrıştırıcısının yapma şeklinden ziyade. Yani, bir ana bilgisayarla başlıyorsa, bir URL'yi mutlak olarak tanımasını istiyorum. şemanın mevcut olup olmadığını. Bu şekilde, şemaya bağlı URL'leri (//example.com
gibi) ve şema ile URL'leri (örneğin example.com
, wikipedia.org
, lots.and-lots.of.domains.com.ng
gibi) doğru bir şekilde tanır. Yöntem, şu anda Temelde buBir mutlak web URL'sini bir şema olmadan bile tanıyın
public String checkPossiblyAbsolute(String url) {
if (url.matches("^(\\/\\/)?([-_A-Za-z0-9]+\\.)+\\w{2,3}(\\/.*)?$")) {
if (url.startsWith("//")) url = "http:" + url;
else url = "http://" + url;
}
return url;
}
benzeyen bir yapı kullanılarak,', bu nokta A-Z
, a-z
, 0-9
, -
ve son sıra (TLD) tam olarak 2 içeren _
burada karakter dizileri ayrı olarak kontrol eder veya 3 harf. Ayrıca, dize isteğe bağlı bir //
ile başlayabilir. Testlerim beklediğim şekilde çalışır, ancak bunu yapmak için daha kolay (veya en azından okunabilir) bir yol bulmak isterim. Düşüncesi olan var mı?