Regex, değerli veriler üzerinde temel kalıp tabanlı kontroller gerçekleştirmenin mükemmel bir yoludur.
Programlama, yapılandırılmış ve yapılandırılmamış metinsel verilerle uğraşmayı kolaylaştırmıştır. Normal ifadeler ve harici kitaplıklar gibi araçlar bu görevleri çok daha kolay hale getirir.
Normal bir ifade kullanarak URL’leri doğrulamak için Python ve JavaScript dahil çoğu dili kullanabilirsiniz. Bu örnek normal ifade mükemmel değildir, ancak basit kullanım durumları için URL’leri kontrol etmek için kullanabilirsiniz.
Bir URL’yi Doğrulamak İçin Normal Bir İfade
Bu makalede sunulan bir URL’yi doğrulamak için kullanılan normal ifade mükemmel değildir. Bu normal ifade doğrulamasında başarısız olabilecek birden çok geçerli URL örneği olabilir. Bu, IP adreslerini, ASCII olmayan karakterleri ve FTP gibi protokolleri içeren URL’leri içerir. Aşağıdaki normal ifade yalnızca en yaygın URL’leri doğrular.
Normal ifade, aşağıdaki koşulları karşılıyorsa bir URL’yi geçerli sayar:
- Dize http veya https ile başlamalı ve ardından :// gelmelidir .
- Alt etki alanı ve etki alanının birleşik uzunluğu 2 ile 256 arasında olmalıdır. Yalnızca alfasayısal karakterler ve/veya özel karakterler içermelidir.
- TLD (Üst Düzey Etki Alanı) yalnızca alfabetik karakterler içermeli ve iki ila altı karakter uzunluğunda olmalıdır.
- URL dizesinin sonu, alfasayısal karakterler ve/veya özel karakterler içerebilir. Ve sıfır veya daha fazla kez tekrar edebilir.
Aşağıdaki normal ifadeyi kullanarak JavaScript’te bir URL’yi doğrulayabilirsiniz:
- ^(http(s)://.)[-a-zA-Z0-9@:%._+~#=]{2,256}.[a-z]{2,6}b([-a-zA-Z0-9@:%_+.~#?&//=]*)$
- Benzer şekilde, Python’da bir URL’yi doğrulamak için aşağıdaki normal ifadeyi kullanabilirsiniz:
- ^((http|https)://)[-a-zA-Z0-9@:%._\+~#?&//=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%._\+~#?&//=]*)$
Neresi:
- (http|https)://) dizenin http veya https ile başlayıp :// ile başlamasını sağlar.
- [-a-zA-Z0-9@:%._\+~#?&//=] alfasayısal karakterleri ve/veya özel karakterleri belirtir. Bu kümenin ilk örneği, alt etki alanı ve etki alanı bölümünde izin verilecek karakter kümesini temsil eder. Bu kümenin ikinci örneği, sorgu dizesinde veya alt dizin bölümünde izin verilecek karakter kümesini temsil ederken.
- {2.256} , 2 ila 256 (her ikisi de dahil) kez oluşum göstergesini temsil eder. Bu, alt etki alanının ve etki alanının birleşik uzunluğunun iki ile 256 arasında olması gerektiğini gösterir.
- . nokta karakterini temsil eder.
- [az]{2,6} uzunluğu iki ile altı arasında olan a’dan z’ye tüm küçük harfler anlamına gelir. Bu, üst düzey etki alanı bölümünde izin verilecek karakter kümesini temsil eder.
- b bir kelimenin sınırını, yani bir kelimenin başlangıcını veya sonunu temsil eder.
- * , sorgu dizesinin, parametrelerin veya alt dizinlerin sıfır veya daha fazla kopyasını gösteren bir tekrarlama operatörüdür.
- ^ ve $ sırasıyla dizenin başlangıcını ve sonunu gösterir.
Yukarıdaki ifadeden rahatsızsanız, önce normal ifadeler için başlangıç kılavuzuna bakın . Normal ifadelere alışmak biraz zaman alır. Normal ifadeler kullanarak kullanıcı hesabı ayrıntılarını doğrulamak gibi bazı örnekleri araştırmak yardımcı olacaktır.
Yukarıdaki normal ifade, aşağıdaki URL türlerini karşılar:
https://www.something.com/
http://www.something.com/
https://www.something.edu.co.in
http://www.url-with-path.com/path
https://www.url-with-querystring.com/?url=has-querystring
http://url-without-www-subdomain.com/
https://mail.google.com
Bir Programda Normal İfadeyi Kullanma
Bu projede kullanılan kod bir GitHub deposunda mevcuttur ve MIT lisansı altında kullanmanız için ücretsizdir.
Bu, bir URL’yi doğrulamak için bir Python yaklaşımıdır:
import re
def validateURL(url):
regex = “^((http|https)://)[-a-zA-Z0-9@:%._\+~#?&//=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%._\+~#?&//=]*)$”
r = re.compile(regex)
if (re.search(r, url)):
print(“Valid”)
else:
print(“Not Valid”)
url1 = “https://www.linkedin.com/”
validateURL(url1)
url2 = “http://apple”
validateURL(url2)
url3 = “iywegfuykegf”
validateURL(url3)
url4 = “https://w”
validateURL(url4)
Bu kod , normal ifade modelini derlemek için Python’un re.compile() yöntemini kullanır. Bu yöntem, normal ifade modelini bir dize parametresi olarak kabul eder ve bir normal ifade desen nesnesi döndürür. Bu normal ifade kalıbı nesnesi ayrıca, re.search() yöntemini kullanarak hedef dize içindeki normal ifade kalıbının oluşumlarını aramak için kullanılır .
En az bir eşleşme bulursa, re.search() yöntemi ilk eşleşmeyi döndürür. Hedef dizgeden desenle tüm eşleşmeleri aramak istiyorsanız, re.findall() yöntemini kullanmanız gerektiğini unutmayın.
Yukarıdaki kodu çalıştırmak, ilk URL’nin geçerli olduğunu ancak geri kalanının geçerli olmadığını onaylayacaktır.
url regex doğrulayıcı için terminal çıkışı
Benzer şekilde, aşağıdaki kodu kullanarak JavaScript’te bir URL’yi doğrulayabilirsiniz:
function validateURL(url) {
if(/^(http(s)://.)[-a-zA-Z0-9@:%._+~#=]{2,256}.[a-z]{2,6}b([-a-zA-Z0-9@:%_+.~#?&//=]*)$/g.test(url)) {
console.log(‘Valid’);
} else {
console.log(‘Not Valid’);
}
}
validateURL(“https://www.linkedin.com/”);
validateURL(“http://apple”);
validateURL(“iywegfuykegf”);
validateURL(“https://w”);
Yine, bu kodu çalıştırmak, ilk URL’nin geçerli olduğunu ve geri kalanının geçersiz olduğunu onaylayacaktır. Hedef dizeyi bir normal ifade kalıbıyla eşleştirmek için JavaScript’in match() yöntemini kullanır.
Normal İfadeleri Kullanarak Önemli Verileri Doğrulayın
Metni aramak, eşleştirmek veya ayrıştırmak için normal ifadeler kullanabilirsiniz. Ayrıca doğal dil işleme, örüntü eşleştirme ve sözcük analizi için de kullanılırlar.
Kredi kartı numaraları, kullanıcı hesabı ayrıntıları, IP adresleri ve daha fazlası gibi önemli veri türlerini doğrulamak için bu güçlü aracı kullanabilirsiniz.