Вишередност у регуларним изразима Пајтона
Регуларни изрази при раду са вишередним нискама имају своје специфичности. Хајде да се позабавимо њима на примеру следеће ниске, која садржи уобичајене симболе, симболе за прелазак у нови ред и табулацију:
pythontxt = '''111
222
333
444'''
Прелазак у нови ред
Симболе за прелазак у нови ред можемо да ухватимо
помоћу команде '\n':
pythonres = re.sub('\n', '!', txt)
print(res)
Као резултат исписаће се следећа ниска (размаци између редова су табулације):
python'111! 222! 333! 444'
Табулација
Симболе табулације можемо да ухватимо помоћу
команде '\t':
pythonres = re.sub('\t', '!', txt)
print(res)
Резултат извршавања кода:
python'''
!111
!222
!333
!444
'''
Рад тачке
Команда '.' за вишередну ниску
не хвата симболе за прелазак у нови ред:
pythonres = re.sub('.', '!', txt)
print(res)
Резултат извршавања кода:
python'''
!!!
!!!!
!!!!
!!!!
'''
Било који симбол
Да бисмо ухватили све симболе у вишередној
ниски, користимо паметан трик у виду
комбинације [\s\S]. Таква конструкција
ће пронаћи све уобичајене симболе и све преласке
у нови ред:
pythonres = re.sub('[\s\S]', '!', txt)
print(res)
Резултат извршавања кода:
python'!!!!!!!!!!!!!!!!!!'
Долар
Команда '$' у вишередном режиму
ће хватати крај сваког реда:
pythonres = re.sub('$', '!', txt)
print(res)
Резултат извршавања кода:
python'''
111!
222!
333!
444!
'''
Практични задаци
Дата је ниска:
python'''
abc
def
ghi
jkl
'''
Напишите регуларни израз који ће од ове ниске направити следећу:
python'''
abc!
def!
ghi!
jkl!
'''
Дата је ниска:
python'''
abc
def
ghi
jkl
'''
Напишите регуларни израз који ће од ове ниске направити следећу:
python'''
! abc
! def
! ghi
! jkl
'''
Дата је ниска:
python'''
abc
def
ghi
jkl
'''
Напишите регуларни израз који ће од ове ниске направити следећу:
python'''!
abc
def
ghi
jkl
!'''
Дата је ниска:
python'''
abc
def
ghi
jkl
'''
Напишите регуларни израз који ће од ове ниске направити следећу:
python'''!
! abc
! def
! ghi
! jkl
!'''
Дата је ниска:
python'''
abc
def
ghi
jkl
'''
Напишите регуларни израз који ће од ове ниске направити следећу:
python'''!
abc!
def!
ghi!
jkl!
!'''
Дата је ниска:
python'''
abc
def
ghi
jkl
'''
Напишите регуларни израз који ће од ове ниске направити следећу:
python'''
!abc
!def
!ghi
!jkl
'''