Python ile metin işleme ve düzenli ifadeler
Dizgi yöntemleri, düzenli ifadeler ve Unicode ile günlük, rapor ve serbest metni güvenilir biçimde ayrıştırır, dönüştürür ve doğrularsın.
Seviye 201 · 17 ders · 15 pratik lab
Dersler
Dizgi araçları
- Dizgi yöntemleri: split, partition, strip, translate
- f-string ile hizalama, sayı biçimi ve tablo
- Unicode normalleştirme ve Türkçe büyük-küçük harf
- string.Template, textwrap ve difflib
- Kısa görev: sabit genişlikli raporu tabloya çevir
Düzenli ifadeler
- Düzenli ifade sözdizimi: karakter sınıfları ve nicelik
- Gruplar, adlandırılmış gruplar ve geri başvuru
- findall, finditer ve sub ile çıkarma ve değiştirme
- Bayraklar ve okunur VERBOSE ifadeler
- İleri ve geri bakış
- Yavaşlayan ifadeler: geri izleme ve ReDoS
- Kısa görev: erişim günlüğünden IP, yol ve durum kodunu çıkar
Ayrıştırma ve doğrulama
- Biçim doğrulama: e-posta, IP, tarih
- ipaddress modülü ile adres ve ağ işlemleri
- Basit bir sözcük ayırıcı yazmak
- Kısa görev: metindeki parola ve anahtarları maskele
Bitirme
- Bitirme görevi: farklı biçimdeki günlükleri tek biçime çeviren araç
Pratik lablar
- Günlükteki gizli değerleri karartmak: Günlük satırlarındaki belirteçleri, kart numaralarını ve e-posta adreslerini karartan, sipariş numarası gibi masum sayılara dokunmayan fonksiyonu yaz.
- Fiş satırlarını hizalamak: Ürün, adet ve tutarı f-string hizalama ve binlik ayraçla sütunlara oturtan satır biçimleyiciyi yaz.
- Başlık satırlarını partition ile ayırmak: "Anahtar: değer" satırlarını partition ve strip ile sözlüğe çevir; değerin içindeki iki nokta korunmalı.
- İki ayar dosyasının farkını difflib ile göstermek: İki ayar metninin birleşik farkını difflib ile üret ve yalnızca değişen anahtarları özetleyen bir liste döndür.
- Türkçe i ve ı harflerini doğru büyütmek: Şehir adlarını Türkçe kurallarına göre büyük harfe çeviren fonksiyonu yaz; "izmir" girdisi "İZMİR" olsun.
- Aynı görünen adları normalleştirerek karşılaştırmak: Farklı Unicode biçimlerinde yazıldığı için eşleşmeyen müşteri adlarını NFC ve casefold ile karşılaştıran fonksiyonu yaz.
- Türkçe başlıktan ASCII dosya adı üretmek: Türkçe harfleri translate ile çevirip aksanları normalleştirerek güvenli dosya adı üret; boş sonuçta hata ver.
- Metinden sipariş kodlarını çekmek: E-posta gövdesindeki "SP-2024-00173" biçimli sipariş kodlarını findall ile bul ve yinelenenleri at.
- Günlük satırını adlı gruplarla ayrıştırmak: Zaman, sunucu, süreç ve mesaj alanlarını adlı gruplarla ayıran VERBOSE bir desen yaz; uymayan satırlar None dönsün.
- Tarih biçimini sub ile çevirmek: Metindeki gün.ay.yıl tarihlerini geri başvurularla yıl-ay-gün biçimine çevir; geçersiz aylara dokunma.
- Yavaşlayan deseni düzeltmek: Uzun girdide saniyelerce takılan iç içe niceleyicili deseni yeniden yaz ve süre sınırlı testi geçir.
- Hesap numarası biçimini doğrulamak: Ülke kodu, uzunluk ve karakter kurallarına göre hesap numarası biçimini fullmatch ile doğrulayan fonksiyonu yaz.
- IP adresinin izinli ağda olup olmadığını denetlemek: ipaddress modülüyle bir adresin izinli CIDR listesinden birine düşüp düşmediğini söyleyen fonksiyonu yaz; IPv6 da desteklensin.
- Bağlantı adresindeki parolayı gizlemek: Günlük satırlarındaki bağlantı adreslerinde kullanıcı:parola bölümünü lookbehind kullanarak yıldızla değiştir.
- Arama süzgeci için belirteçleyici yazmak: "durum=açık AND öncelik>2" gibi süzgeç ifadelerini belirteçlere ayır ve tanınmayan karakterde konumlu hata ver.
Kurs hakkında
Dizgi yöntemleri, düzenli ifadeler ve Unicode ile günlük, rapor ve serbest metni güvenilir biçimde ayrıştırır, dönüştürür ve doğrularsın.
Ne öğreneceksin
- Dizgi araçları
- Düzenli ifadeler
- Ayrıştırma ve doğrulama
- Bitirme
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.