Daugiaeilystė Python reguliariosiose išraiškose
Reguliariosios išraiškos, dirbant su kelių eilučių eilutėmis, turi savo ypatumų. Leiskite su jais susipažinti naudojant šios eilutės pavyzdį, kuriame yra įprastų simbolių, eilutės pertraukimo ir tabuliacijos simbolių:
txt = '''111
222
333
444'''
Eilutės pertrauka
Eilutės pertraukos simbolius galima pagauti
naudojant komandą '\n':
res = re.sub('\n', '!', txt)
print(res)
Rezultate bus išvesta tokia eilutė (tarpai tarp eilučių - tai tabuliacija):
'111! 222! 333! 444'
Tabuliacija
Tabuliacijos simbolius galima pagauti naudojant
komandą '\t':
res = re.sub('\t', '!', txt)
print(res)
Kodo vykdymo rezultatas:
'''
!111
!222
!333
!444
'''
Taško veikimas
Komanda '.' kelių eilučių eilutei
negauna eilutės pertraukos simbolių:
res = re.sub('.', '!', txt)
print(res)
Kodo vykdymo rezultatas:
'''
!!!
!!!!
!!!!
!!!!
'''
Bet koks simbolis
Norint pagauti visus simbolius kelių eilučių
eilutėje, naudojama gudri priemonė, pvz.,
derinys [\s\S]. Tokia konstrukcija
ras visus įprastus simbolius ir visus eilutės
pertraukimus:
res = re.sub('[\s\S]', '!', txt)
print(res)
Kodo vykdymo rezultatas:
'!!!!!!!!!!!!!!!!!!'
Dolerio ženklas
Komanda '
kelių eilučių režime
gins kiekvienos eilutės pabaigą:
res = re.sub('
', '!', txt)
print(res)
Kodo vykdymo rezultatas:
'''
111!
222!
333!
444!
'''
Praktinės užduotys
Duota eilutė:
'''
abc
def
ghi
jkl
'''
Parašykite reguliariąją išraišką, kuri šią eilutę paverstų tokia:
'''
abc!
def!
ghi!
jkl!
'''
Duota eilutė:
'''
abc
def
ghi
jkl
'''
Parašykite reguliariąją išraišką, kuri šią eilutę paverstų tokia:
'''
! abc
! def
! ghi
! jkl
'''
Duota eilutė:
'''
abc
def
ghi
jkl
'''
Parašykite reguliariąją išraišką, kuri šią eilutę paverstų tokia:
'''!
abc
def
ghi
jkl
!'''
Duota eilutė:
'''
abc
def
ghi
jkl
'''
Parašykite reguliariąją išraišką, kuri šią eilutę paverstų tokia:
'''!
! abc
! def
! ghi
! jkl
!'''
Duota eilutė:
'''
abc
def
ghi
jkl
'''
Parašykite reguliariąją išraišką, kuri šią eilutę paverstų tokia:
'''!
abc!
def!
ghi!
jkl!
!'''
Duota eilutė:
'''
abc
def
ghi
jkl
'''
Parašykite reguliariąją išraišką, kuri šią eilutę paverstų tokia:
'''
!abc
!def
!ghi
!jkl
'''