Kurs
Ücretsiz Intro to R kursumuzu almak isterseniz, bağlantı burada.
Dizelerden Sayısal Değerleri Çıkarma
Dizelerden sayı çıkarmak, özellikle yapısız veriler veya günlük dosyalarıyla çalışırken yaygın bir görevdir.
Diyelim ki elinizde şu dize var: 'the recipe calls for 6 strawberries and 2 bananas'.
Çilek ile muz oranlarını karşılaştırırken daha sonra kullanmak üzere bu dizeden 6 ve 2 değerlerini çıkarmak faydalı olacaktır.
Birden fazla sayıyı (daha doğrusu birden fazla desen eşleşmesini) çıkarmak için düzenli ifade kullanırken re.findall() fonksiyonunu kullanabilirsiniz. Dan videoda bundan bahsetmedi, ancak kullanımı oldukça basittir: re.findall() fonksiyonuna bir desen ve bir dize geçirirsiniz; o da eşleşmelerin bir listesini döndürür.
Talimatlar
remodülünü içe aktarın.- Aşağıdaki dizedeki tüm sayıları bulacak bir desen yazın:
'the recipe calls for 10 strawberries and 1 banana'. Bunu yapmak için:re.findall()fonksiyonunu kullanın ve iki argüman geçirin: önce deseni, ardından dizenizi.- Rakamları bulmak için gereken desen
\d’dir. Bunun ardından önceki öğenin bir veya daha fazla kez eşleşmesini sağlamak için bir+gelmelidir. Bu,10değerinin1ve0olarak değil tek bir sayı olarak görülmesini sağlar.
- Düzenli ifadenizin
10ve1değerlerini bulduğunu doğrulamak için eşleşmeleri yazdırın.
# Import the regular expression module
____
# Find the numeric values: matches
matches = re.findall('____', '____')
# Print the matches
print(____)
# Import the regular expression module
import re
# Find the numeric values: matches
matches = re.findall('\d+', 'the recipe calls for 10 strawberries and 1 banana')
# Print the matches
print(matches)
Ex().test_import('re')
Ex().test_correct(test_object('matches'), test_function('re.findall'))
Ex().test_function('print')
success_msg('Excellent work - your regular expression successfully extracted the numeric values 10 and 1 from the string!')
- Bir modül
xiçe aktarmak içinimport xkomutunu kullanın. re.findall()için ilk argüman\d+, ikinci argüman ise şu dize olmalıdır:'the recipe calls for 10 strawberries and 1 banana'.matchesdeğerini yazdırmak için verilenprint()fonksiyonunu kullanın.
Bu mantıklı geldiyse bir sonraki alıştırmaya devam edin! Gelmediyse, burada bir genel bakış videosu var.
Python’da Düzenli İfadelerle Metin Temizlemeye Genel Bakış Videosu
Desen Eşleştirme
Bu alıştırmada düzenli ifade becerilerinizi geliştirmeye devam edeceksiniz. Verilen her dize için, onu eşleştirecek uygun deseni yazmanız gerekiyor.
Talimatlar
- Aşağıdakileri eşleştirecek desenler yazın:
xxx-xxx-xxxxbiçiminde bir telefon numarası. Bunu önceki bir alıştırmada zaten yapmıştınız.- Şu biçimde bir dize: Bir dolar işareti, rastgele sayıda rakam, bir ondalık nokta, 2 rakam.
- Dolar işaretini eşleştirmek için
\$, rastgele sayıda rakamı eşleştirmek için\d*, ondalık noktayı eşleştirmek için\.vexadet rakamı eşleştirmek için\d{x}kullanın.
- Dolar işaretini eşleştirmek için
- Bir büyük harf ve ardından rastgele sayıda alfasayısal karakter.
- Herhangi bir büyük harfi eşleştirmek için
[A-Z]ve rastgele sayıda alfasayısal karakteri eşleştirmek için\w*kullanın.
- Herhangi bir büyük harfi eşleştirmek için
import re
# Write the first pattern
pattern1 = bool(re.match(pattern='____', string='123-456-7890'))
print(pattern1)
# Write the second pattern
pattern2 = bool(re.match(pattern='____', string='$123.45'))
print(pattern2)
# Write the third pattern
pattern3 = bool(re.match(pattern='____', string='Australia'))
print(pattern3)
# Write the first pattern
pattern1 = bool(re.match(pattern='\d{3}-\d{3}-\d{4}', string='123-456-7890'))
print(pattern1)
# Write the second pattern
pattern2 = bool(re.match(pattern='\$\d*\.\d{2}', string='$123.45'))
print(pattern2)
# Write the third pattern
pattern3 = bool(re.match(pattern='[A-Z]\w*', string='Australia'))
print(pattern3)
Ex().test_correct(test_object('pattern1'), test_function('re.match', index=1))
Ex().test_function('print', index=1)
Ex().test_correct(test_object('pattern2'), test_function('re.match', index=2))
Ex().test_function('print', index=2)
Ex().test_correct(test_object('pattern3'), test_function('re.match', index=3))
Ex().test_function('print', index=3)
success_msg("Great work! You're mastering the fundamentals of writing regular expressions!")
- Düzenli ifadenizin eşleştirmesi gereken ilk desende üç bileşen vardır:
xxx,xxxvexxxx. İlk ikisi\d{3}ile, sonuncusu ise\d{4}ile eşleştirilir. Bu bileşenlerin her biri bir-ile ayrılmalıdır.
Bu kurstan daha fazlasını öğrenmek isterseniz, bağlantı burada.
DataCamp'in Python String Eğitimi'ne göz atın.
