Večvrstičnost v regularnih izrazih Python
Regularni izrazi imajo pri delu z večvrstičnimi nizi svoje posebnosti. Oglejmo si jih na primeru naslednjega niza, ki vsebuje običajne znake, znake za novo vrstico in tabulatorje:
txt = '''111
222
333
444'''
Nova vrstica
Znake za novo vrstico lahko ujamemo z
ukazom '\n':
res = re.sub('\n', '!', txt)
print(res)
Kot rezultat se bo izpisal naslednji niz (vrzeli med vrsticami so tabulatorji):
'111! 222! 333! 444'
Tabulator
Znake tabulatorja lahko ujamemo z ukazom
'\t':
res = re.sub('\t', '!', txt)
print(res)
Rezultat izvajanja kode:
'''
!111
!222
!333
!444
'''
Delovanje pike
Ukaz '.' za večvrstični niz
ne ujame znakov za novo vrstico:
res = re.sub('.', '!', txt)
print(res)
Rezultat izvajanja kode:
'''
!!!
!!!!
!!!!
!!!!
'''
Katerikoli znak
Za ujetje vseh znakov v večvrstičnem
nizu se uporablja posebna tehnika v obliki
kombinacije [\s\S]. Ta konstrukcija
bo našla vse običajne znake in vse prelome
vrstic:
res = re.sub('[\s\S]', '!', txt)
print(res)
Rezultat izvajanja kode:
'!!!!!!!!!!!!!!!!!!'
Dolar
Ukaz '
v večvrstičnem načinu
bo ujel konec vsake vrstice:
res = re.sub('
', '!', txt)
print(res)
Rezultat izvajanja kode:
'''
111!
222!
333!
444!
'''
Praktične naloge
Dan je niz:
'''
abc
def
ghi
jkl
'''
Napišite regularni izraz, ki bo iz tega niza naredil naslednjega:
'''
abc!
def!
ghi!
jkl!
'''
Dan je niz:
'''
abc
def
ghi
jkl
'''
Napišite regularni izraz, ki bo iz tega niza naredil naslednjega:
'''
! abc
! def
! ghi
! jkl
'''
Dan je niz:
'''
abc
def
ghi
jkl
'''
Napišite regularni izraz, ki bo iz tega niza naredil naslednjega:
'''!
abc
def
ghi
jkl
!'''
Dan je niz:
'''
abc
def
ghi
jkl
'''
Napišite regularni izraz, ki bo iz tega niza naredil naslednjega:
'''!
! abc
! def
! ghi
! jkl
!'''
Dan je niz:
'''
abc
def
ghi
jkl
'''
Napišite regularni izraz, ki bo iz tega niza naredil naslednjega:
'''!
abc!
def!
ghi!
jkl!
!'''
Dan je niz:
'''
abc
def
ghi
jkl
'''
Napišite regularni izraz, ki bo iz tega niza naredil naslednjega:
'''
!abc
!def
!ghi
!jkl
'''