Python Düzenli İfadeleri Kolaylaştırıldı
Düzenli ifadeler (regex), dizeleri desenlere göre eşleştirmek ve işlemek için kullanılan güçlü araçlardır. Python'da re
modülü düzenli ifadeler için destek sağlar ve karmaşık dize işlemlerini verimli bir şekilde gerçekleştirmenize olanak tanır. Bu makale sizi düzenli ifadelerin temelleriyle tanıştıracak ve bunları Python'da etkili bir şekilde nasıl kullanacağınızı gösterecektir.
re
Modülüne Başlarken
Python'da düzenli ifadeleri kullanmak için re
modülünü içe aktarmanız gerekir. Bu modül, düzenli ifade desenleriyle çalışmak için çeşitli işlevler sağlar:
re.match()
- Sadece dizenin başında bir eşleşme olup olmadığını kontrol eder.re.search()
- Eşleşmeyi bulmak için tüm dizeyi arar.re.findall()
- Dizedeki tüm eşleşmeleri bulur ve bunları bir liste olarak döndürür.re.sub()
- Dizedeki eşleşmeleri belirtilen bir değiştirmeyle değiştirir.
Temel Desen Eşleştirme
Düzenli ifadeler arama kalıplarını tanımlamak için özel karakterler kullanır. İşte bazı temel kalıplar:
.
- Yeni satır hariç herhangi bir tek karakterle eşleşir.\d
- Herhangi bir rakamla eşleşir ([0-9]
ile eşdeğerdir).\w
- Herhangi bir alfanümerik karakterle eşleşir ([a-zA-Z0-9_]
ile eşdeğerdir).\s
- Herhangi bir boşluk karakteriyle eşleşir.^
- Dizenin başlangıcına eşleşir.$
- Dizenin sonunu eşleştirir.
Örnekler
Temel desen eşleştirmeyi gösteren bazı örnekler şunlardır:
import re
# Match a pattern at the beginning of a string
result = re.match(r'Hello', 'Hello, World!')
print(result.group()) # Output: Hello
# Search for a pattern in the entire string
result = re.search(r'\d+', 'There are 24 hours in a day.')
print(result.group()) # Output: 24
Gruplarla Düzenli İfadeleri Kullanma
Gruplar, eşleşen metnin parçalarını yakalamak için kullanılır. Parantez kullanılarak tanımlanırlar. Örneğin, bir desenin belirli parçalarını çıkarmak için grupları kullanabilirsiniz:
pattern = r'(\d{3})-(\d{2})-(\d{4})'
text = 'My number is 123-45-6789.'
# Find all matches with groups
match = re.search(pattern, text)
if match:
print(f'Area Code: {match.group(1)}') # Output: 123
print(f'Prefix: {match.group(2)}') # Output: 45
print(f'Suffix: {match.group(3)}') # Output: 6789
Özel Karakterlerin Kullanımı
Düzenli ifadeler, daha karmaşık desen eşleştirmeleri için çeşitli özel karakterler içerir:
*
- Önceki öğenin 0 veya daha fazla örneğini eşleştirir.+
- Önceki öğenin 1 veya daha fazla örneğini eşleştirir.?
- Önceki öğenin 0 veya 1 örneğini eşleştirir.{n}
- Önceki öğenin tam olarakn
örneğiyle eşleşir.|
- Kendisinden önceki veya sonraki desenle eşleşir.
Örnekler
İşte özel karakterlerin kullanıldığı bazı örnekler:
# Match a pattern with 0 or more occurrences
result = re.findall(r'\d*', '123 abc 456')
print(result) # Output: ['123', '', '', '456']
# Match a pattern with 1 or more occurrences
result = re.findall(r'\d+', 'There are 24 apples and 3 oranges.')
print(result) # Output: ['24', '3']
Metni Düzenli İfadelerle Değiştirme
re.sub()
fonksiyonu, bir desenle eşleşen dizenin bölümlerini değiştirmek için kullanılır:
text = 'The rain in Spain falls mainly in the plain.'
# Replace 'Spain' with 'France'
new_text = re.sub(r'Spain', 'France', text)
print(new_text) # Output: The rain in France falls mainly in the plain.
Çözüm
Düzenli ifadeler, Python'da desen eşleştirme ve metin düzenleme için güçlü bir araçtır. re
modülüyle, karmaşık desenlere göre metin arayabilir, eşleştirebilir ve değiştirebilirsiniz. Temel sözdizimini ve özel karakterleri anlayarak, düzenli ifadeleri çok çeşitli metin işleme görevlerini etkili bir şekilde halletmek için kullanabilirsiniz.