Чандсатрият дар регекси Python
Регулярҳо ҳангоми кор бо сатрҳои чандсатрӣ хусусиятҳои худро доранд. Биёед бо онҳо дар мисоли сатрҳои зерин фаҳмонем, ки аломатҳои оддӣ, аломатҳои гузарони сатр ва табҳоро дар бар мегирад:
txt = '''111
222
333
444'''
Гузарони сатр
Аломатҳои гузарони сатрро бо ёрии
фармон '\n' гирифтан мумкин аст:
res = re.sub('\n', '!', txt)
print(res)
Дар натиҷа сатрҳои зерин барои мушоҳида пешниҳод карда мешавад (фосила байни сатрҳо табҳост):
'111! 222! 333! 444'
Табҳо
Аломатҳои табҳоро бо ёрии
фармон '\t' гирифтан мумкин аст:
res = re.sub('\t', '!', txt)
print(res)
Натиҷаи иҷрои рамз:
'''
!111
!222
!333
!444
'''
Кори нуқта
Фармон '.' барои сатрҳои чандсатрӣ
аломатҳои гузарони сатрро намегирад:
res = re.sub('.', '!', txt)
print(res)
Натиҷаи иҷрои рамз:
'''
!!!
!!!!
!!!!
!!!!
'''
Ҳар як аломат
Барои гирифтани ҳамаи аломатҳо дар сатрҳои чандсатрӣ,
усули маҳирона бо истифода аз
сохти [\s\S] истифода мешавад.
Чунин сохт
ҳамаи аломатҳои оддӣ ва ҳамаи гузарониҳои
сатрро меёбад:
res = re.sub('[\s\S]', '!', txt)
print(res)
Натиҷаи иҷрои рамз:
'!!!!!!!!!!!!!!!!!!'
Доллар
Фармон '
дар ҳолати чандсатрӣ
охири ҳар як сатрро мегирад:
res = re.sub('
', '!', txt)
print(res)
Натиҷаи иҷрои рамз:
'''
111!
222!
333!
444!
'''
Масъалаҳои амалӣ
Сатр дода шудааст:
'''
abc
def
ghi
jkl
'''
Регулярие нависед, ки аз ин сатр зеринро созад:
'''
abc!
def!
ghi!
jkl!
'''
Сатр дода шудааст:
'''
abc
def
ghi
jkl
'''
Регулярие нависед, ки аз ин сатр зеринро созад:
'''
! abc
! def
! ghi
! jkl
'''
Сатр дода шудааст:
'''
abc
def
ghi
jkl
'''
Регулярие нависед, ки аз ин сатр зеринро созад:
'''!
abc
def
ghi
jkl
!'''
Сатр дода шудааст:
'''
abc
def
ghi
jkl
'''
Регулярие нависед, ки аз ин сатр зеринро созад:
'''!
! abc
! def
! ghi
! jkl
!'''
Сатр дода шудааст:
'''
abc
def
ghi
jkl
'''
Регулярие нависед, ки аз ин сатр зеринро созад:
'''!
abc!
def!
ghi!
jkl!
!'''
Сатр дода шудааст:
'''
abc
def
ghi
jkl
'''
Регулярие нависед, ки аз ин сатр зеринро созад:
'''
!abc
!def
!ghi
!jkl
'''