Regex в python: возможно ли получить совпадение, замену и окончательную строку?
Для подстановки регулярных выражений вы можете сделать три вещи:
Шаблон матчаШаблон заменыОригинальная строкаМеханизм регулярных выражений находит три вещи, которые меня интересуют:
ПодходящийстрокаЗаменастрокаКонечная обработанная строкаКогда используешьre.sub
, последняя строка - это то, что возвращается. Но возможно ли получить доступ к двум другим вещам, совпадающей строке и замещающей строке?
Вот пример:
orig = "This is the original string."
matchpat = "(orig.*?l)"
replacepat = "not the \\1"
final = re.sub(matchpat, replacepat, orig)
print(final)
# This is the not the original string
Соответствующая строка"original"
и строка замены"not the original"
, Есть ли способ получить их? Я пишу сценарий для поиска и замены во многих файлах, и я хочу, чтобы он распечатывал то, что находит и заменял, без распечатки всей строки.