RegEx
Andoza yordamida matn izlashni oʻrganamiz.
RegEx
—ANDOZA ASOSIDA MATN QIDIRISH
Pythondagi juda foydali modullardan biri bu re
moduli. Bu modul yordamida biz biror matn berilgan andozaga tushish, tushmalsigini tekshrib ko'rishimiz mumkin. Yoki berilgan andoza asosida matnlar orasidan kerakli matnlarni ajratib olish mumkin.
Keling boshlanishiga sodda misol ko'ramiz. Quyida biz 3 ta so'z va so'zlarni tekshirish uchun andoza yaratdik. Quyidagi andozamiz a harfidan boshlanuvchi (^т
), s harfiga tugovchi (р$
), 5 harfdan iborat so'zlarni qidiradi (^т...р$
).
Avvaliga andozalarni tushunish biroz qiyin bo'lishi mumkin, lekin vaqt o'tishi bilan andoza qanday ishlashini tushunib olasiz deb umid qilamiz.
So'zlarni andozaga solishtirish uchun re.match()
funksiyasidan foydalanamiz. Agar tekshirgan so'zimiz andozaga mosh tushsa, re.match()
metodi so'zni o'zini qaytaradi, aks holda None
qiymatini qaytaradi.
Natija:
Natijadan ko'rishimiz mumkin, word1
va word2
o'zgaruvchilari anfozaga tushdi, word3
esa tushmadi.
Keling endi, so'z to'pish o'yinida ishlatilgan soz'lar ro'yxatidan foydalanamiz, va ro'yxatdan biz bergan andozaga tushuvchi so'zlarni ajratib olamiz.
Natija:
MetaBelgilar
MetaBelgilar (MetaCharacters) andozadagi maxsus belgilar. MetaBelgilarga quyidagilar kiradi: [] . ^ $ * + ? {} () \ |
Bu belgilar Python tomonidan quyidagicha talqin qilinadi:
[]
- Siz qidirayotgan belgilar (harflar, sonlar) to'plami.
[]
- Siz qidirayotgan belgilar (harflar, sonlar) to'plami.Quyidagi andoza barcha м,қ,ў harflaridan biri uchraydigan soʻzlarni topadi (bu judayam koʻp).
Andozada har bir harfni kiritib o'tirmasdan oraliq ham berish mumkin. Misol uchun, quyidagi andoza 0
dan 9
gacha sonlar va а
dan г
gacha boʻlgan harflardan biri cuhraydigan soʻzlarni qidiradi.
Toʻrtburchak qavs ichida ^
belgisini qoʻysak, shu harflar UCHRAMAYDIGAN soʻzlarni qidirishimiz mumkin:
^ - Matn boshini tekshirish
Yuqoridagi koʻrganimiz kabi, ^ belgisi yordamida matn qaysi belgi (belgilar) bilan boshlanishini koʻrsatishimiz mumkin:
Natija:
Nuqta
Bitta nuqta - bitta belgini anglatadi. Masalan bizga авв harflaridan boshlanadigan va kamida6 harfdan iborat so'zlarni topish talab qilinsa quyidagi andozani yozamiz:
$ - Matn oxirini tekshirish
Matn qaysi belgilar bilan tugashini ko'rsatuvchi MetaBelgi.
Last updated