Я запутался, как заменить предложение на 're.sub' для этой конкретной проблемы - PullRequest
0 голосов
/ 07 июня 2019

У меня проблемы с изменением этой конкретной строки с помощью re.sub:

string = "
Name: Carolyn\r\n
Age : 20\r\n
Hobby: skiing, diving\r\n"

Есть ли способ легко заменить, например, с Hobby: skiing, diving\r\n на Hobby: swimming, reading\r\n?

1 Ответ

2 голосов
/ 07 июня 2019

Предполагается, что вы пытаетесь сопоставить что-либо после Hobby, а не только skiing и diving конкретно.Один из вариантов - сопоставить всю строку, захватить Hobby: в группе захвата и заменить строку записью плюс текст замены.Вы можете использовать re.M для перехода в многострочный режим, позволяющий сопоставить конец строки, а не конец строки.

import re

string = '''
Name: Carolyn
Age : 20
Hobby: skiing, diving
'''

print(re.sub(r'(Hobby: ).*$', r'\1swimming, reading', string, flags=re.M))

result

Name: Carolyn
Age : 20
Hobby: swimming, reading
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...