To`plar nazariyasidan asosiy ma`lumotlar


-§. RegEx - ANDOZA YORDAMIDA MATN IZLASH



Download 416,5 Kb.
bet7/10
Sana21.07.2022
Hajmi416,5 Kb.
#833626
1   2   3   4   5   6   7   8   9   10
Bog'liq
Axmadaliyev Muhammadsodiq bmi

1.4-§. RegEx - ANDOZA YORDAMIDA MATN IZLASH
Pythondagi juda foydali modullardan biri bu re (regular expressions) moduli. Bu modul yordamida 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 т harfidan boshlanuvchi (^т), р 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.
1
import re
2
3
word1 = "темир"
4
word2 = "томир"
5
word3 = "тулпор"
6
7
andoza = "^т...р"
8
9
print(re.match(andoza, word1))
10
print(re.match(andoza, word2))
11
print(re.match(andoza, word3))
Copied!
Natija:
1

2

3
None
Copied!
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.
1
from uzwords import words
2
andoza = "^т...р$"
3
4
matches = []
5
for word in words:
6
if re.match(andoza,word):
7
matches.append(word)
8
print(matches)
Copied!
Natija:
1
['табар', 'табор', 'тавир', 'тайёр', 'татар', 'татир', 'тахир', 'тақир', 'театр', 'тембр', 'темир', 'темур', 'тенор', 'тикер', 'тихир', 'товар', 'товор', 'тожир', 'томир', 'тонер', 'тоҳир', 'триер', 'тумор', 'тўпар', 'тўпир']
Copied!
Andozalar biror matnda biz uchun kerakli maʻlumotlarni ajratib olish uchun juda qulay. Masalan, Telegram orqali yuborilgan habardan email manzilini yoki telefon raqamini ajratib olish uchun maxsus andoza yozishmiz mumkin. ihateregex.io sahifasidan esa loyihangiz uchun tayyor andozalarni topishingiz mumkin.

ihateregex.io sahifasida email uchun andoza
Keling, yuqoridagi andoza asosida biror matndan email manzilini ajratib olamiz. Buning uchun re.findall() funksiyasidan foydalanamiz.
1
matn = """Maqolalar 2020-yilning 20-martiga qadar rtmkonferensiya2021@mail.ru elektron pochtasida qabul qilinadi.
2
Quyidagi yo'nalishdagi maqolalar qabul qilinadi:
3
👉 Aniq va tabiiy fanlarni zamonaviy pedagogik texnologiyalar asosida o‘qitish metodikasi.
4
👉 Umumta’lim fanlarini o‘qitishda STEAM yondashuvning o’rni va ahamiyati. """
5
6
andoza = '[^@ \t\r\n]+@[^@ \t\r\n]+\.[^@ \t\r\n]+'
7
email = re.findall(andoza,matn)
8
print(email)
Copied!
Natija: ['rtmkonferensiya2021@mail.ru']
Andoza yordamida foydalanuvchi kiritgan qiymatlarni ham ma'lum shartlarga javob berishini tekshirib olishimiz mumkin:
1
# Kuchli parolni tekshirish
2
# Quyidagi andoza ham ihateregex.io sahifasidan olindi
3
andoza = '^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$'
4
msg = "Yangi parol kiriting"
5
msg += '(kamida 8 belgidan iborat, kamida 1 ta lotin bosh harf, 1 ta kichik harf, '
6
msg += '1 ta son va 1 ta maxsus belgi boʻlishi kerak): '
7
8
while True:
9
password = input(msg)
10
if re.match(andoza,password):
11
print("Maxfiy so'z qabul qilindi")
12
break
13
else:
14
print("Maxfiy so'z talabga javob bermadi")
Copied!
RegEx juda katta mavzu boʻlgani uchun, kelajakda bu haqida alohida dars qilamiz.

Download 416,5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish