Pythonda Regular Ifodalarga Kirish
Regular ifodalar - bu murakkab qidiruv va almashtirish (yoki oddiygina qidiruv) uchun buyruqlar. Ular juda qiziqarli ishlarni qilishga imkon beradi, ammo, afsuski, o‘rganishda ancha qiyin.
Pythonda regular ifodalar bilan ishlashni
boshlash uchun biz maxsus re modulini
import qilishimiz kerak:
import re
Re moduli regular ifodalar
bilan ishlash uchun mo'ljallangan metodlarni
o'z ichiga oladi. Regular ifoda
buyruqlar to'plamidan iborat bo'lib,
ikki turdagi belgilardan tashkil topgan: o'zini
o'zi ifodalovchilar va maxsus belgilar
deylanadigan buyruq belgilaridan.
Regular ifodalar bilan tanishishni
sub metodi misolida boshlash yaxshiroq,
bu metod satrdagi almashtirishlar uchun
ishlatiladi. Birinchi parametrida nima almashtirishni,
ikkinchisida - nimaga almashtirishni qabul qiladi.
Uchinchi parametrda almashtirish amalga oshiriladigan
satrni ko'rsatamiz. To'rtinchi ixtiyoriy parametrda
almashtirishlar sonini belgilaymiz. Ushbu metod
yordamidagi eng oddiy almashtirish mana bunday
ko'rinadi:
res = re.sub('a', '!', 'bab')
print(res) # 'b!b' ni chiqaradi
Siz payqaganingizdek, regular ifodada
harflar o'zlarini ifodalaydi. Raqamlarga ham
xuddi shu nisbatan qo'llaniladi. Keling, 2
raqamini ! ga almashtiramiz:
res = re.sub('2', '!', '12abc3')
print(res) # '1!abc3' ni chiqaradi
Ammo nuqta maxsus belgi hisoblanadi
va har qanday belgi ni ifodalaydi.
Quyidagi misolda shunday andozaga asosan
quyi satrni topamiz: 'x' harfi,
keyin har qanday belgi, keyin yana 'x'
harfi:
res = re.sub('x.x', '!', 'xax eee')
print(res) # '! eee' ni chiqaradi
Berilgan satr:
txt = 'ahb acb aeb aeeb adcb axeb'
'ahb', 'acb', 'aeb'
satrlarini topadigan, andozaga asosan regular ifoda yozing:
'a' harfi, har qanday
belgi, 'b' harfi.
Berilgan satr:
txt = 'aba aca aea abba adca abea'
'abba', 'adca', 'abea'
satrlarini topadigan, andozaga asosan regular ifoda yozing:
'a' harfi, 2
har qanday belgi, 'a' harfi.
Berilgan satr:
txt = 'aba aca aea abba adca abea'
'adca' ni olmasdan, 'abba'
va 'abea' satrlarini topadigan regular ifoda yozing.