Višelinijskost u regularnim izrazima Python-a
Regularni izrazi pri radu sa višelinijskim stringovima imaju svoje specifičnosti. Hajde da ih razumemo na primeru sledećeg stringa, koji sadrži obične karaktere, karaktere preloma linije i tabulacije:
pythontxt = '''111
222
333
444'''
Prelom linije
Karaktere preloma linije možemo uhvatiti
pomoću komande '\n':
pythonres = re.sub('\n', '!', txt)
print(res)
Kao rezultat ispisaće se sledeći string (razmaci između linija su tabulacije):
python'111! 222! 333! 444'
Tabulacija
Karaktere tabulacije možemo uhvatiti pomoću
komande '\t':
pythonres = re.sub('\t', '!', txt)
print(res)
Rezultat izvršavanja koda:
python'''
!111
!222
!333
!444
'''
Rad tačke
Komanda '.' za višelinijski string
ne hvata karaktere preloma linije:
pythonres = re.sub('.', '!', txt)
print(res)
Rezultat izvršavanja koda:
python'''
!!!
!!!!
!!!!
!!!!
'''
Bilo koji karakter
Da bismo uhvatili sve karaktere u višelinijskom
stringu, koristi se pametan trik u vidu
kombinacije [\s\S]. Takva konstrukcija
će pronaći sve obične karaktere i sve prelome
linija:
pythonres = re.sub('[\s\S]', '!', txt)
print(res)
Rezultat izvršavanja koda:
python'!!!!!!!!!!!!!!!!!!'
Dolar
Komanda ' u višelinijskom režimu
će hvatati kraj svake linije:
pythonres = re.sub('
', '!', txt)
print(res)
Rezultat izvršavanja koda:
python'''
111!
222!
333!
444!
'''
Praktični zadaci
Dat je string:
python'''
abc
def
ghi
jkl
'''
Napišite regularni izraz koji će od ovog stringa napraviti sledeći:
python'''
abc!
def!
ghi!
jkl!
'''
Dat je string:
python'''
abc
def
ghi
jkl
'''
Napišite regularni izraz koji će od ovog stringa napraviti sledeći:
python'''
! abc
! def
! ghi
! jkl
'''
Dat je string:
python'''
abc
def
ghi
jkl
'''
Napišite regularni izraz koji će od ovog stringa napraviti sledeći:
python'''!
abc
def
ghi
jkl
!'''
Dat je string:
python'''
abc
def
ghi
jkl
'''
Napišite regularni izraz koji će od ovog stringa napraviti sledeći:
python'''!
! abc
! def
! ghi
! jkl
!'''
Dat je string:
python'''
abc
def
ghi
jkl
'''
Napišite regularni izraz koji će od ovog stringa napraviti sledeći:
python'''!
abc!
def!
ghi!
jkl!
!'''
Dat je string:
python'''
abc
def
ghi
jkl
'''
Napišite regularni izraz koji će od ovog stringa napraviti sledeći:
python'''
!abc
!def
!ghi
!jkl
'''