Python-da RegEx-lərdə Çoxsətirlilik
Müntəzəm ifadələr çoxsətirli sətirlərlə işləyərkən özünəməxsus xüsusiyyətlərə malikdir. Gəlin aşağıdakı nümunə sətir üzərində onları araşdıraq, bu sətir adi simvollar, sətiraltı və tabulyasiya simvolları ehtiva edir:
txt = '''111
222
333
444'''
Sətiraltı
Sətiraltı simvollarını '\n'
komandası ilə tutmaq olar:
res = re.sub('\n', '!', txt)
print(res)
Nəticədə aşağıdakı sətir çap olunacaq (sətirlər arasındakı boşluqlar tabulyasiyadır):
'111! 222! 333! 444'
Tabulyasiya
Tabulyasiya simvollarını '\t'
komandası ilə tutmaq olar:
res = re.sub('\t', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'''
!111
!222
!333
!444
'''
Nöqtənin işi
'.' komandası çoxsətirli sətir üçün
sətiraltı simvollarını tutmur:
res = re.sub('.', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'''
!!!
!!!!
!!!!
!!!!
'''
İstənilən simvol
Çoxsətirli sətirdə bütün simvolları tutmaq
üçün [\s\S] birləşməsi şəklində
hiyləgər bir üsul istifadə olunur. Belə bir
quruluş bütün adi simvolları və bütün
sətiraltılarını tapacaq:
res = re.sub('[\s\S]', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'!!!!!!!!!!!!!!!!!!'
Dollar
'
komandası çoxsətirli rejimdə
hər sətrin sonunu tutacaq:
res = re.sub('
', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'''
111!
222!
333!
444!
'''
Praktiki tapşırıqlar
Sətir verilmişdir:
'''
abc
def
ghi
jkl
'''
Bu sətirdən aşağıdakını yaradan müntəzəm ifadə yazın:
'''
abc!
def!
ghi!
jkl!
'''
Sətir verilmişdir:
'''
abc
def
ghi
jkl
'''
Bu sətirdən aşağıdakını yaradan müntəzəm ifadə yazın:
'''
! abc
! def
! ghi
! jkl
'''
Sətir verilmişdir:
'''
abc
def
ghi
jkl
'''
Bu sətirdən aşağıdakını yaradan müntəzəm ifadə yazın:
'''!
abc
def
ghi
jkl
!'''
Sətir verilmişdir:
'''
abc
def
ghi
jkl
'''
Bu sətirdən aşağıdakını yaradan müntəzəm ifadə yazın:
'''!
! abc
! def
! ghi
! jkl
!'''
Sətir verilmişdir:
'''
abc
def
ghi
jkl
'''
Bu sətirdən aşağıdakını yaradan müntəzəm ifadə yazın:
'''!
abc!
def!
ghi!
jkl!
!'''
Sətir verilmişdir:
'''
abc
def
ghi
jkl
'''
Bu sətirdən aşağıdakını yaradan müntəzəm ifadə yazın:
'''
!abc
!def
!ghi
!jkl
'''