Python-da Regular Ifadələrə Giriş
Regular ifadələr, mürəkkəb axtarış və əvəzetmə (və ya sadəcə axtarış) üçün əmrlərdir. Onlar çox maraqlı şeylər etməyə imkan verir, lakin təəssüf ki, mənimsəməkdə olduqca çətindirlər.
Python-da regular ifadələrlə işləməyə başlamaq üçün xüsusi re modulunu import etməliyik:
import re
re modulu, regular ifadələr ilə işləmək üçün nəzərdə tutulmuş metodları özündə cəmləyir. Regular ifadə, əmrlər dəstidir və iki növ simvoldan ibarətdir: özünü təmsil edən simvollar və xüsusi simvollar adlanan əmr simvolları.
Regular ifadələrlə tanışlığı sub metodunun nümunəsindən başlamaq daha yaxşıdır, hansı ki, sətirdə əvəzetmələr üçün istifadə olunur. Metod birinci parametrdə *nəyi* əvəz edəcəyini, ikinci parametrdə isə *nə ilə* əvəz edəcəyini qəbul edir. Üçüncü parametrdə əvəzetmənin ediləcəyi sətri göstəririk. Dördüncü isteğe bağlı parametrdə isə əvəzetmələrin sayını təyin edirik. Bu metodla ən sadə əvəzetmə belə görünəcək:
res = re.sub('a', '!', 'bab')
print(res) # çıxaracaq 'b!b'
Fərqinə vardığınız kimi, regular ifadədə hərflər özlərini təmsil edir. Rəqəmlər üçün də eyni şey keçerlidir. Gəlin 2 rəqəmini ! ilə əvəz edək:
res = re.sub('2', '!', '12abc3')
print(res) # çıxaracaq '1!abc3'
Nöqtə isə xüsusi simvoldur və istənilən simvolu təmsil edir. Aşağıdakı nümunədə gəlin belə bir şablonla alt sətir axtaraq: 'x' hərfi, sonra istənilən simvol, sonra yenidən 'x' hərfi:
res = re.sub('x.x', '!', 'xax eee')
print(res) # çıxaracaq '! eee'
Sətir verilmişdir:
txt = 'ahb acb aeb aeeb adcb axeb'
'ahb', 'acb', 'aeb' sətirlərini şablona görə tapan regular ifadəni yazın: 'a' hərfi, istənilən simvol, 'b' hərfi.
Sətir verilmişdir:
txt = 'aba aca aea abba adca abea'
'abba', 'adca', 'abea' sətirlərini şablona görə tapan regular ifadəni yazın: 'a' hərfi, 2 istənilən simvol, 'a' hərfi.
Sətir verilmişdir:
txt = 'aba aca aea abba adca abea'
'adca' sətirini tapmadan, 'abba' və 'abea' sətirlərini tapan regular ifadəni yazın.