Kayıtlar

Mart, 2019 tarihine ait yayınlar gösteriliyor

Düzenli İfadelerle Bölünebilme Kuralları

TC kimlik numaraları için bir düzenli ifade yazmaktan çok uzağım ama daha temel şeylerin nasıl yapılabileceğini öğrenmeye devam ediyorum. Daha önce düzenli ifadelerle sayıların üçe bölünüp bölünemediğine bakmıştık. Şimdi birkaç bölünebilme kuralını daha inceleyelim. 1 ile Bölünebilme Her sayı 1 ile tam bölünmektedir. \d+ 2 ile Bölünebilme Çift olan her sayı 2 ile tam bölünür. Bir sayının 2 ile bölümünden kalan 0 ya da 1'dir. \d*[02468] 3 ile Bölünebilme Verilen sayının rakamlarının sayı değerleri toplamı 3 veya 3'ün katıysa bu sayı 3 ile tam bölünebilmektedir. ([0369]|[258][0369]*[147]|([147]|[258][0369]*[258])([0369]|[147][0369]*[258])*([258]|[147][0369]*[147]))* Bu düzenli ifadenin nasıl bulunduğunu merak ediyorsanız lütfen kaynaklardaki ilgili yazıya bakınız. 4 ile Bölünebilme Bir sayının son 2 basamağı 00 ya da 4'ün katıysa o sayı 4 ile tam bölünür. Yani herhangi bir sayının son hanesi veya son haneleri aşağıdaki gibiyse sayı 4'e tam bölünür: 0 ...

Düzenli İfadelerle Üçün Katları

Resim
Türkiye Cumhuriyeti Kimlik Numaralarını üretmek ve geçerli mi değil mi diye kontrol etmek için TurkishIdQt isimli basit bir uygulama yazdıktan sonra doğrulama işleminin bir düzenli ifadeyle yapılıp yapılamayacağını merak etmeye başladım . Kısa bir araştırmayla aradığım şeyin çok basit bir hali olan ^[1-9]{1}[0-9]{10}$ ifadesini buldum ama bu yeterli gelmeyince araştırmaya devam ettim. Türkiye Cumhuriyeti Kimlik Numaralarının geçerliğini kontrol etmek için toplama, çıkarma, çarpma ve mod alma gibi matematiksel işlemler yapılması gerekiyor. Bunların hepsinin düzenli ifadelerle gerçekleştirilip gerçekleştirilemeyeceğini bilmiyorum ama konuyla ilgili yeni bir şeyler öğrenmek için denk geldiğim kaynaklara göz atıyorum. Hem daha iyi öğrenebilmek hem de sizlerin de haberdar olmasını sağlamak için ilginç şeylerle karşılaşırsam konu hakkında yazmaya çalışacağım şimdi olduğu gibi. Merak Yalnızca üçün katlarıyla eşleşen düzenli bir ifade yazabilir misiniz? Yani "3", "...