Как указал Майк в комментарии, используйте правильный анализатор HTML для обработки ввода HTML. Однако, если вам интересно, как работает ваше регулярное выражение, я постараюсь кратко описать его.
Текущий шаблон
Ваш текущий шаблон работает следующим образом
<div class=\"center-content\">
- соответствует буквально <div class="center-content">
*<h2>
- соответствует любому символу от нуля до неограниченного времени, за которым следует <h2>
<a.{10,200} >
- соответствует <a
, за которым следует любой символ между 10и 200 раз, за которыми следует символ >
(.{50,200})
- этот соответствует любому персонажу от 50 до 200 раз и захватывает его в группу. Это, кстати, то, что вы получаете в своем коде по телефону m.group(1)
</a>
- соответствует </a>
буквально
Упрощенная версия
Однако, еслиВаша цель - просто захватить текст, заключенный в элемент a
, вы можете упростить свое регулярное выражение до <a\s+href=.*?>(.*?)</a>
, которое работает следующим образом:
<a\s+href=
- соответствует <a href=
.*?>
- соответствует части URL элемента a
(любой символ от 0 до неограниченного числа раз, как можно меньше), за которым следует >
(.*?)
- захватывает что-либо вмежду >
и <
(как можно меньше раз) - позвоните .group(1)
, чтобы получить
</a>
- соответствует </a>