Düzenli ifadeler hakkında konuşalım.
Şimdi, düzenli ifadeler Python'a özgü değildir.
Aslına bakarsanız, bunları programlama dillerinin her yerinde görürsünüz.
Ancak size düzenli ifadeleri hızlıca öğreteceğim, çünkü özellikle doğrulama yaparken,
örneğin birinin doğru e-postayı girip girmediğini kontrol ederken veya parola gereksinimleriniz olduğunda
ya da bir metin parçasında bir dize parçasının var olup olmadığını kontrol etmek istediğinizde çok kullanışlıdırlar.
İşte bu, bu videoda keşfedeceğimiz bir şey.
Düzenli ifadeler.
Neymiş onlar?
Neyse ki Python bir düzenli ifade modülü ile birlikte geliyor.
Unutmayın, düzenli ifadeler Python'a özgü değildir.
Bunları hemen hemen her dilde kullanabilirsiniz, ancak bir metin parçasındaki şeyleri bulmak için çok kullanışlıdırlar.
Diyelim ki burada bir dizemiz var ve bunun içinde dize arama diyebiliriz.
Sıradaki lütfen.
İşte oldu.
Şimdi, diyelim ki burada bir şey aramak istiyorum.
Öncelikle, böyle bir şey yapabilir miyim?
Arama diyebilir miyim?
Dize halinde.
Buraya basalım.
Ve eğer Çalıştır'a tıklarsam.
Anlıyorum.
Bu da bir dizenin içinde bir şey aramanın basit bir yoludur.
Peki neden düzenli ifadelere ihtiyacımız var?
Düzenli ifadeler bundan biraz daha güçlüdür, çünkü belki de dizede aramanın
kaç kez geçtiğini aramak istiyoruzdur.
Ya da belki karmaşık bir dizimiz vardır.
Size ne demek istediğimi göstereyim.
Düzenli ifadeler gibi bir şeyi kullanmanın yolu bu formatı kullanmaktır.
Yani r e dot diyebilirim ve sonra burada aramayı kullanabilirim.
Burada da görebileceğiniz gibi, ona bir desen, bir dize ve bazı bayraklar veriyoruz.
Bu konu hakkında biraz sonra konuşacağız.
O halde tek söylememiz gereken hangi modeli yapmak istediğiniz?
Peki, bunun dizede var olup olmadığını aramak istiyorum, böylece şunu söyleyebilirim.
Ve sonra ona gerçek dizeyi verin.
Bizim durumumuzda.
Bu bizim ipimiz.
Yani bunu çalıştırırsam.
Peki, burada ne olduğunu yazdıralım.
O zaman baskı yapalım.
Çalıştır'a tıklarsam.
Tamam.
Eşleşme nesnesi dediğim şeyi elde ediyorum.
Düzenli ifade bize bir çıktı verir, sadece doğru veya yanlış değil, bize bu konuda biraz daha fazla bilgi
veren gerçek bir nesne.
Burada görebileceğiniz bilgilerden biri de açıklıktır.
Yani dizede geçtiği yerde, 17 dizininde geçer ve 21 dizininde biter.
Yani bu gerçekten faydalı.
Bu bilgiyi saklayalım ve sadece burada diyelim.
Peki bu eşleşme nesnesi ile ne yapabiliriz?
Yapabileceğimiz ilk şey elimizde ne olduğunu kontrol etmektir.
Dolayısıyla, her şeyden önce, gördüğümüz yayılma var.
Ve eğer bunu çalıştırırsam.
Bana dizenin bir ikili olarak nerede oluştuğunu söyler.
Yani endeks 17'den 21'e.
Başlat ve başlat da yapabilirim.
Well bana metnin ne zaman başladığını söyler ve ayrıca grup yapabilirim ya da aslında nerede bittiğini göstermek için end de yapabilirim.
Ayrıca gruplama da yapabilirim ve gruplama, dizenin eşleşmenin olduğu kısmını döndürür ve diyelim ki çalıştır'a
tıklarsam burada başka bir bu var, bunu görüyor musunuz?
Bana yalnızca eşleşmenin olduğu dizenin o parçasını veya bir kısmını verir.
Şimdi grup, birden fazla arama yapmaya çalıştığımızda gerçekten kullanışlıdır.
Yani bizim durumumuzda sadece bir arama yapıyoruz.
Yani eşleştirmeye çalıştığımız bir desenimiz var, ancak tek bir satırda birden fazla arama
yapmanın yolları var.
Ama size bunu göstermeden önce, bunun gibi var olmayan bir şeyi büyük S ile yaparsak
ne olur?
Çalıştır'a tıklarsam.
Bir hata alıyorum çünkü artık A hiçbiri olacak çünkü düzenli ifade hiçbir şey bulamazsa hiçbiri
döndürür.
Yani ya bir eşleşme nesnesi döndürecek ya da hiçbiri dönmeyecek.
Şimdi, bunu nasıl daha gelişmiş hale getirebiliriz?
Yapabileceğimiz şeylerden biri, kontrol etmek istediğimiz bir model oluşturmaktır.
Diyelim ki buradaki desen ve bu desen, düzenli ifade nokta derlemesini kullanacağız.
Ve derleme, tıpkı burada yaptığımız gibi, bir model vermemize olanak tanıyacak.
Diyelim ki burada sadece şunu kontrol etmek istiyorum.
Şimdi, bu kalıbı sadece arama yapmak yerine kullanabilirim.
Artık kalıbı kullanabilirim.
Benim için arama yapmak için.
Yani, tekrar, eğer bunu çalıştırırsam.
Artık bunu vermek zorunda değilim.
Sadece aramak istediğimiz dizeyi iletmem gerekiyor.
Bunun yakalandığını ve deseni artık her yerde birden çok kez kullanabileceğimi görün.
Diyelim ki nokta deseni yapabiliyorum.
Sahip olduğumuz tüm yöntemler, aslında oldukça fazla.
Size faydalı olanlardan bazılarını göstereyim.
Hepsini bulduk.
Maç örnekleri.
Diyelim ki burada.
Ve Çalıştır'a tıklayın.
Şuna bak.
Bende bu var.
Ve bu.
Böylece bunun iki örneğini de bir listenin içine alıyorum.
Tam maç ve tam maç gibi bir şey de yapabilirim.
Her şeyin tam olarak eşleştiğinden emin olmak.
Yani burada çalıştır'a tıklarsam, yazdıralım, buraya bakalım, çalıştır'a tıklayalım.
Hiç alamıyorum çünkü tam bir eşleşme alamıyorum.
Tam bir eşleşme için eşleşmenin geri dönmesi gerekir.
Tam olarak aradığımız dize olmalıdır.
Yani Çalıştır'a tıklarsam.
Al bakalım.
Şimdi bir eşleşme nesnesi alıyorum.
Şimdi, diyelim ki Çalıştır'a tıkladığımda burada ünlem işareti yerine bir soru işareti var.
Ünlem işareti ve ardından belki başka bir şey varsa hiç yok.
Hâlâ alamıyorum.
Ayrıca bir başka seçeneğimiz daha var, o da eşleşme.
Ve match, gördüğünüz gibi, dizenin başındaki sıfır veya daha fazla karakterle eşleşir.
Yani burada string yaparsam ve dx yazdırırsam, aslında bunu değiştirmeme izin verin.
Burada Andre'yi aslında karşılaştırdığımız dizede yapalım ve çalıştır'a tıklarsam.
Tam eşleşme kullanan bir eşleşme nesnesi görmeme rağmen hala bir eşleşme nesnesi alıyorum.
Bu da bana hiçbir şey vermiyor çünkü burada yalnızca dizeyle eşleşen ve ardından gelenleri önemsemeyen bir eşleşmeye
karşı tam bir eşleşme istiyoruz.
Yani bu son derece faydalı.
Ancak şu ana kadar, kullanabileceğimiz ve oldukça faydalı olan birkaç yöntem elde ettik,
ancak bu o kadar da güçlü görünmüyor.
Neden tüm dillerde düzenli ifadeler vardır?
Neden gerçekten önemsiyoruz?
Bir sonraki videoda, bu desen fikrini ve bazı gerçekten gelişmiş desenleri nasıl yapabileceğimizi
keşfedeceğiz.
Bir sonraki videoda görüşürüz.
Güle güle.