Пытаюсь решить задачу, по извлечению парных тегов из html страницы. В голову пришло любопытное решение: вытаскивать все парные теги, запихивая содержимое в группу, после чего проводить рекурсивный поиск по группе. Однако при таком подходе появляется проблема: регулярка либо сжирает чужие теги, либо попросту теряет нужные. Как пример:
pattern = "<span.*?>(.*?)<\/span>"
string = "<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span></span>"
В таком случае, он выдаст приемлемый результат:
match -> "<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span></span>"
match.group(1) -> "<span></span><span></span><span></span>"
Однако когда я запускаю такой же поиск по группе, происходит нехорошая вещь:
match -> "<span></span><span></span><span></span>"
match.group(1) -> "</span><span></span><span>"
То бишь регулярка съедает чужой закрывющий тег. Поигравшись с кванторами, получилось извлечь правильно теги из группы, но тогда в первом примере, часть тегов попросту игнорируется.
Вопрос, как быть?
Возмозжно я что то с кванторами не учёл, или есть какой-то особый способ решения такого - буду рад услышать. Заранее благодарю за внимание