⊗pyPmRESF 73 of 129 menu

Python'da Düzenli İfade Dizeleri için Bayraklar

Düzenli ifadelerle çalışan yöntemler için isteğe bağlı parametrelerden biri olarak bayrakları ayarlamak için aşağıdaki sözdizimi kullanılır:

flags=re.bayrak_adı

Düzenli ifadelerle çalışmak için temel bayraklar

Bayrak Amaç
re.IGNORECASE Karakterlerin yazım durumunun (büyük/küçük harf) göz ardı edilmesi.
re.DOTALL Nokta, satır sonu dahil herhangi bir karakteri temsil eder.
re.I Aramayı büyük/küçük harfe duyarsız yapar.
re.L Kelimeleri mevcut dile göre arar. Bu yorum, alfabetik grubu (\w ve \W) ve kelime sınırı davranışını (\b ve \B) etkiler.
re.M $ karakteri metnin herhangi bir satırının sonunda (sadece metnin sonunda değil) arama yapar ve ^ karakteri metnin herhangi bir satırının başında (sadece metnin başında değil) arama yapar.
re.S Nokta (.) değerini, yeni satır dahil herhangi bir karakterle eşleşecek şekilde değiştirir.
re.U Harfleri Unicode karakter setine göre yorumlar. Bu bayrak \w, \W, \b, \B davranışını etkiler. Python 3+ 'da bu bayrak varsayılan olarak ayarlanmıştır.
re.X Çok satırlı düzenli ifade sözdizimine izin verir. Desen içindeki boşlukları görmezden gelir ([] kümesi içindeki boşluklar veya ters eğik çizgi ile kaçanlar hariç) ve kaçılmayan '#' karakterini yorum olarak işler.

Örnek

re.IGNORECASE bayrağı kullanılarak karakterlerin büyük/küçük harf durumu göz ardı edilebilir. Bunun nasıl yapıldığına bir göz atalım. Bu örnekte düzenli ifade sadece küçük harfleri bulacaktır:

txt = 'aaa bbb CCC DDD' res = re.sub('[a-z]+', '!', txt) print(res)

Kodun çalıştırılmasının sonucu:

'! ! CCC DDD'

Örnek

Şimdi yöntemin dördüncü parametresine re.IGNORECASE bayrağını ekleyelim, böylece düzenli ifade tüm büyük/küçük harflerdeki karakterleri arayacaktır:

txt = 'aaa AAA bbb BBB' res = re.sub('[a-z]+', '!', txt, flags=re.IGNORECASE) print(res)

Kodun çalıştırılmasının sonucu:

'! ! ! !'

Örnek

Düzenli ifade ile tüm satır sonlarını bulalım:

txt = '''aaa bbb''' res = re.sub('\n', '!', txt) print(res)

Çalıştırılan kodun sonucu:

'aaa!bbb'

Örnek

Ancak, eğer tüm karakterleri değiştirmek gerekiyorsa, düzenli ifadede nokta kullanıldığında satır sonları yakalanmaz:

txt = '''aaa bbb''' res = re.sub('.', '!', txt) print(res)

Çalıştırılan kodun sonucu:

'!!! !!!'

Örnek

Bu hatayı düzeltmek için re.DOTALL bayrağı kullanılmalıdır:

res = re.sub('.', '!', txt, flags=re.DOTALL) print(res)

Çalıştırılan kodun sonucu:

'!!!!!!!'

Örnek

Parametreye, aralarına + operatörü koyarak birden fazla bayrak da iletebilirsiniz. Önce satır sonundaki 'a' harfini değiştirelim:

txt = ''' aaa AAA aaa''' res = re.sub('aaa , '!', txt) print(res)

Çalıştırılan kodun sonucu:

''' aaa AAA ! '''

Örnek

Şimdi re.M bayrağını koyalım:

res = re.sub('aaa , '!', txt, flags=re.M) print(res)

Çalıştırılan kodun sonucu:

''' ! AAA ! '''

Örnek

Şimdi bir de büyük/küçük harf duyarsızlığı için bayrak uygulayalım:

res = re.sub('aaa , '!', txt, flags=re.M+re.IGNORECASE) print(res)

Çalıştırılan kodun sonucu:

''' ! ! ! '''
Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet