⊗pyPmREHHy 47 of 129 menu

Python RegExlarida guruhlar ichida defis

Defis - [ ] ichida maxsus belgidir (tashqarida - emas). Agar sizga defis o'zi kerak bo'lsa - uni guruh ajratgichi sifatida qabul qilinmaydigan joyga qo‘ying.

Nima uchun bu muhim: siz o'zingiz sezmagan holda belgilar guruhini yaratib qo'yishingiz mumkin. Masalan, '[:-@]' - siz ikki nuqta, defis va @ belgisini tanlayotganingizda o'ylaysiz, aslida esa : va @ orasidagi belgilar guruhi hosil bo'ladi. Ushbu guruhga quyidagi belgilar kiradi: ? < = > :

Ular qayerdan keladi? ASCII jadvalidan - ikki nuqta raqami @ belgisidan kichik - va guruh hosil bo'ladi. Ya'ni barcha guruhlar ASCII jadvali asosida hosil bo'ladi (agar xohlasangiz bundan foydalanish mumkin).

Bunga qanday yechim topish kerak: defis belgisini hech qanday tarzda guruh belgisi sifatida qabul qilinmaydigan joyga qo‘ying, masalan, boshida yoki oxirida (ya'ni [ dan keyin yoki ] dan oldin).

Shuningdek, defisni ekranlash mumkin - bu holda u qayerda turishidan qat'iy nazar o'zini anglatadi. Masalan, [:-@] o'rniga [:\-@] yozing - va endi guruh bo'lmaydi, balki uchta belgi bo'ladi - ikki nuqta, defis va @ belgisi @.

Misol

Quyidagi misolda qidiruv shabloni quyidagicha: 1 raqami, keyin 'a' dan 'z' gacha harf, keyin 2 raqami:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a-z]2', '!', txt) print(res)

Kodni bajarish natijasi:

'! 1-2 ! !'

Misol

Keling endi defisni ekranlaymiz. Natijada qidiruv shabloni quyidagicha: 1 raqami, keyin 'a' harfi, yoki defis, yoki 'z' harfi, keyin 2 raqami:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a\-z]2', '!', txt) print(res)

Kodni bajarish natijasi:

'! ! 1c2 !'

Misol

Uni ekranlamasdan, shunchaki defisni boshqa joyga o‘tkazish mumkin:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[az-]2', '!', txt) print(res)

Kodni bajarish natijasi:

'! ! 1c2 !'

Misol

Quyidagi misolda qidiruv shabloni quyidagicha: birinchi belgi - kichik harflar yoki defis '-', keyin ikkita 'x' harfi:

txt = 'axx Axx -xx @xx' res = re.sub('[a-z-]xx', '!', txt) print(res)

Kodni bajarish natijasi:

'! Axx ! @xx'

Misol

Quyidagi misolda qidiruv shabloni quyidagicha: birinchi belgi - kichik, katta harflar yoki defis '-', keyin ikkita 'x' harfi:

txt = 'axx Axx -xx @xx' res = re.sub('[a-zA-Z-]xx', '!', txt) print(res)

Kodni bajarish natijasi:

'! ! ! @xx'

Misol

Defisni ikkita guruh orasiga qo‘yish mumkin - u yerda u hech qanday yangi guruh yaratmaydi:

txt = 'axx 9xx -xx @xx' res = re.sub('[a-z-0-9]xx', '!', txt) print(res)

Kodni bajarish natijasi:

'! ! ! @xx'

Amaliy vazifalar

Quyidagi satr berilgan:

txt = 'xaz xBz xcz x-z x@z'

Quyidagi shablon bo‘yicha barcha satrlarni toping: 'x' harfi, katta yoki kichik harf yoki defis, 'z' harfi.

Quyidagi satr berilgan:

txt = 'xaz x$z x-z xcz x+z x%z x*z'

Quyidagi shablon bo‘yicha barcha satrlarni toping: 'x' harfi, keyin $, yoki defis yoki +, keyin 'z' harfi.

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