Регулярное выражение в 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

Строка соответствия - "оригинал" , а строка замены - " не оригинал ». Есть ли способ их получить? Я пишу сценарий для поиска и замены во многих файлах, и я хочу, чтобы он распечатал то, что он находит и заменяет, без вывода всей строки.

29
задан wch 3 February 2012 в 20:19
поделиться