Düzenli ifadeler pratiği: re.split() ve re.findall()
Şimdi rakamları, metinleri ve alfasayısal olmayan karakterleri eşleyecek bazı düzenli ifadeler yazma fırsatın var. Farklı adımları en iyi nasıl eşleyeceğini belirlemek için önce IPython Shell’de my_string değişkenini yazdırarak bir göz at.
Not: Regex desenlerinin başına r öneki eklemek önemlidir; böylece desenlerin istediğin şekilde yorumlanır. Aksi halde, metinlerde kaçış dizileriyle ilgili sorunlarla karşılaşabilirsin. Örneğin, Python’da "\n" yeni satırı belirtir; ancak r öneki kullanırsan ham metin "\n" olarak yorumlanır — yani "\" karakterini "n" karakteri izler — ve yeni satır olarak değerlendirilmez.
Düzenli ifade modülü re senin için zaten içe aktarıldı.
Videodan hatırla: regex kitaplığı için sözdizimi her zaman önce deseni, sonra metni geçmektir.
Bu egzersiz
Python ile Doğal Dil İşlemeye Giriş
kursunun bir parçasıdırEgzersiz talimatları
my_stringdeğişkenini her cümle sonundan böl. Bunu yapmak için:- Cümle sonlarını (
.?!) eşleyeceksentence_endingsadlı bir desen yaz. re.split()ilemy_string’i bu desen üzerinden böl ve sonucu yazdır.
- Cümle sonlarını (
my_stringiçindeki tüm büyük harfle başlayan kelimelericapitalized_wordsadlı bir desen yazarak vere.findall()kullanarak bul ve yazdır.- Küçük harf gruplarını eşlemek için videoda gösterilen
[a-z]desenini hatırlıyor musun? Büyük harf gruplarını eşlemek için bu deseni uygun şekilde değiştir.
- Küçük harf gruplarını eşlemek için videoda gösterilen
- Bir veya daha fazla boşluğu (
"\s+") eşleyecekspacesadlı bir desen yaz ve ardından tüm noktalama işaretlerini koruyarakmy_string’i bu desene görere.split()ile böl. Sonucu yazdır. my_stringiçindeki tüm rakamlarıdigits("\d+") adlı bir desen yazarak vere.findall()kullanarak bul. Sonucu yazdır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Write a pattern to match sentence endings: sentence_endings
sentence_endings = r"[___]"
# Split my_string on sentence endings and print the result
print(re.____(____, ____))
# Find all capitalized words in my_string and print the result
capitalized_words = r"[___]\w+"
print(re.____(____, ____))
# Split my_string on spaces and print the result
spaces = r"___"
print(re.____(____, ____))
# Find all digits in my_string and print the result
digits = r"___"
print(re.____(____, ____))