Mitmerealisus Pythoni regulaaravaldistes
Regulaaravaldistel on mitmerealiste stringidega töötamisel oma eripärad. Hakkame neid uurima järgmise stringi näitel, mis sisaldab nii tava- kui ka reavahetuse ja tabeldusmärke:
txt = '''111
222
333
444'''
Reavahetus
Reavahetusmärke saab tabada
käsuga '\n':
res = re.sub('\n', '!', txt)
print(res)
Tulemuseks kuvatakse järgmine string (ridade vahelised tühikud on tabeldusmärgid):
'111! 222! 333! 444'
Tabeldus
Tabeldusmärke saab tabada
käsuga '\t':
res = re.sub('\t', '!', txt)
print(res)
Koodi täitmise tulemus:
'''
!111
!222
!333
!444
'''
Punkti töötamine
Käsk '.' mitmerealise stringi
puhul ei püüa reavahetusmärke:
res = re.sub('.', '!', txt)
print(res)
Koodi täitmise tulemus:
'''
!!!
!!!!
!!!!
!!!!
'''
Suvaline märk
Kõikide märkide püüdmiseks mitmerealises
stringis kasutatakse kavalat võtet kujul
kombinatsioon [\s\S]. Selline konstruktsioon
leiab kõik tavamärgid ja kõik reavahetused:
res = re.sub('[\s\S]', '!', txt)
print(res)
Koodi täitmise tulemus:
'!!!!!!!!!!!!!!!!!!'
Dollar
Käsk '
mitmerealise režiimi korral
püüab iga rea lõppu:
res = re.sub('
', '!', txt)
print(res)
Koodi täitmise tulemus:
'''
111!
222!
333!
444!
'''
Praktilised ülesanded
Antud string:
'''
abc
def
ghi
jkl
'''
Kirjutage regulaaravaldis, mis teeb sellest stringist järgmise:
'''
abc!
def!
ghi!
jkl!
'''
Antud string:
'''
abc
def
ghi
jkl
'''
Kirjutage regulaaravaldis, mis teeb sellest stringist järgmise:
'''
! abc
! def
! ghi
! jkl
'''
Antud string:
'''
abc
def
ghi
jkl
'''
Kirjutage regulaaravaldis, mis teeb sellest stringist järgmise:
'''!
abc
def
ghi
jkl
!'''
Antud string:
'''
abc
def
ghi
jkl
'''
Kirjutage regulaaravaldis, mis teeb sellest stringist järgmise:
'''!
! abc
! def
! ghi
! jkl
!'''
Antud string:
'''
abc
def
ghi
jkl
'''
Kirjutage regulaaravaldis, mis teeb sellest stringist järgmise:
'''!
abc!
def!
ghi!
jkl!
!'''
Antud string:
'''
abc
def
ghi
jkl
'''
Kirjutage regulaaravaldis, mis teeb sellest stringist järgmise:
'''
!abc
!def
!ghi
!jkl
'''