⊗pyPmRESF 73 of 129 menu

Python dagi muntazam ifodalar uchun bayroqlar

Muntazam ifodalar bilan ishlaydigan metodlar uchun majburiy bo‘lmagan parametr sifatida bayroqlarni belgilash uchun quyidagi sintaksisdan foydalaniladi:

flags=re.bayroq_nomi

Muntazam ifodalar bilan ishlash uchun asosiy bayroqlar

Bayroq Vazifasi
re.IGNORECASE Belgilarning yozilish registrini hisobga olmaslik.
re.DOTALL Nuqta har qanday belgini, shu jumladan satr o‘tishini ham ifodalaydi.
re.I Qidiruvni registrga sezgir bo‘lmasligini ta'minlaydi.
re.L So‘zlarni joriy tilga mos ravishda qidiradi. Bu talqin alifbo guruhiga (\w va \W), shuningdek so‘z chegarasi xatti-harakatiga (\b va \B) ta'sir qiladi.
re.M $ belgisi matnning har qanday satrining oxirida qidiruvni amalga oshiradi (nafaqat matn oxirida) va ^ belgisi matnning har qanday satrining boshida qidiruvni amalga oshiradi (nafaqat matn boshida).
re.S Nuqta (.) qiymatini yangi satrni o‘z ichiga olgan har qanday belgiga mos keladigan qilib o‘zgartiradi.
re.U Harflarni Unicode belgilar to‘plamiga mos ravishda talqin qiladi. Ushbu bayroq \w, \W, \b, \B xatti-harakatiga ta'sir qiladi. Pythonda 3+ ushbu bayroq standart sifatida o‘rnatilgan.
re.X Ko‘p qatorli muntazam ifoda sintaksisiga imkon beradi. U naqsh ichidagi bo‘shliqlarni e‘tiborsiz qoldiradi ([] to‘plami ichidagi bo‘shliqlar yoki teskari chiziq bilan ekranlangan bo‘shliqlardan tashqari) va ekranlanmagan '#' ni sharh sifatida ishlaydi.

Misol

re.IGNORECASE bayrog‘i yordamida belgilar registrini hisobga olmaslik mumkin. Keling, buni qanday amalga oshirilishini ko‘rib chiqaylik. Ushbu misolda muntazam ifoda faqat kichik harflarni topadi:

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

Kodni bajarish natijasi:

'! ! CCC DDD'

Misol

Endi esa metodning to‘rtinchi parametriga re.IGNORECASE bayrog‘ini qo‘shamiz va muntazam ifoda barcha registrlardagi belgilarni qidira boshlaydi:

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

Kodni bajarish natijasi:

'! ! ! !'

Misol

Keling, muntazam ifoda yordamida barcha satr o‘tishlarini topamiz:

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

Bajarilgan kod natijasi:

'aaa!bbb'

Misol

Lekin, agar barcha belgilarni almashtirish kerak bo‘lsa, muntazam ifodada nuqta qo‘yilsa, satr o‘tishlari o‘z ichiga olinmaydi:

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

Bajarilgan kod natijasi:

'!!! !!!'

Misol

Ushbu xatoni tuzatish uchun re.DOTALL bayrog‘ini qo‘llash kerak:

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

Bajarilgan kod natijasi:

'!!!!!!!'

Misol

Parametrga bir nechta bayroq ham uzatish mumkin, ular orasiga + operatorini qo‘ygan holda. Keling, avval satr oxiridagi 'a' harfini almashtiramiz:

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

Bajarilgan kod natijasi:

''' aaa AAA ! '''

Misol

Endi re.M bayrog‘ini qo‘yamiz:

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

Bajarilgan kod natijasi:

''' ! AAA ! '''

Misol

Keling, endi registrni hisobga olmaslik uchun bayroqni ham qo‘llaymiz:

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

Bajarilgan kod natijasi:

''' ! ! ! '''
Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish