Python'da regex — matn qidiruv shablonlari

Matndan telefon raqami, email yoki ma’lum shakldagi so’zni topish kerak bo’lganda oddiy qidiruv yetmaydi. Regex (regulyar ifoda) — matndagi naqshni tavsiflaydigan maxsus til. Python’da u uchun re moduli ishlatiladi.

Naqsh nima

Regex — “aniq so’z” emas, shakl qidiradi. Masalan “ketma-ket kelgan raqamlar” yoki “email ko’rinishidagi matn”. Shaklni maxsus belgilar bilan yozasiz:

Belgi Ma’nosi
\d Bitta raqam (0–9)
\w Harf, raqam yoki _
+ Oldingidan bir yoki ko’p
. Istalgan bitta belgi

findall — barcha mosni topish

re.findall naqshga mos hamma qismlarni ro’yxat qilib qaytaradi:

Python

\d+ — “bir yoki undan ko’p raqam” degani. r'...' — regex uchun ishlatiladigan maxsus string (unda \ oddiy belgi bo’lib qoladi).

search — birinchi mosni tekshirish

re.search matnda naqsh bor-yo’qligini tekshiradi va birinchi mosni beradi:

Python

\w+@\w+\.\w+ — “so’z, @, so’z, nuqta, so’z” naqshi, ya’ni email shakli.

Amaliy mashq

Matndan ma’lumot ajrating:

  1. Ichida bir nechta telefon raqami bor matn yozing;
  2. findall() bilan barcha raqamlarni toping;
  3. \d+ naqshi bilan matndagi barcha sonlarni ajrating;
  4. search() bilan birinchi email manzilini toping;
  5. topilmagan naqsh bilan search() chaqiring — natija nima bo’ldi?

findall() va search() qaytaradigan qiymatlar qanday farq qiladi?

Qisqacha xulosa

  • Regex — matndagi naqshni (shaklni) tavsiflaydigan til; re moduli.
  • \d — raqam, \w — harf/raqam, + — bir yoki ko’p, . — istalgan belgi.
  • re.findall — barcha mosni ro’yxat qilib qaytaradi.
  • re.search — birinchi mosni topadi (bor-yo’qligini tekshirish uchun).
  • Naqshlar r'...' (raw string) bilan yoziladi; murakkablashtirmang.

Keyingi darsda virtual muhit (venv) — loyihalarni bir-biridan ajratishni ko’ramiz.

Bu dars foydali bo'ldimi?

marta ko'rildi