Вот код для чего-то вроде того, что вы говорите, что вам нужно:
>>> import re
>>> sample = '</tag1>\r\n\t\t\t\t<tag2>'
>>> sample
'</tag1>\r\n\t\t\t\t<tag2>'
>>> pattern = '(</tag1>)\r\n\t+(<tag2>)'
>>> replacement = r'\1<tag3>content</tag3>\2'
>>> re.sub(pattern, replacement, sample)
'</tag1><tag3>content</tag3><tag2>'
>>>
Обратите внимание, что \r\n\t+
может быть слишком конкретным, особенно если производство ваших входных данных не находится под вашим контролем.Возможно, лучше принять более общий \s*
(ноль или более пробельных символов).
Использование регулярных выражений для разбора XML и HTML не является хорошей идеей в общем ... хотя трудно увидетьздесь режим сбоя (кроме элементарных ошибок при получении правильного шаблона), вы можете сообщить нам, в чем заключается основная проблема, если какое-то другое решение лучше.