# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"<hr\s*\/>\s*[\\n]*\s*(.+<\/p>)"
test_str = ("<hr />\\n\\n<h3 class=\"brown art\">Базовая комплектация обычно включает в себя (включая сборку и доставку):</h3>\\n<ul>\\n <li><em>Сруб из строганного бревна, средний диаметр 25 см. (вершинка).</em></li>\\n <li><em>Высота потолков 1 этажа 2.7 м., 2 этажа 2.5-2.7 м.</em></li>\\n <li><em>Перегородки по проекту рубленные из такого же бревна, 1 этаж.</em></li>\\n <li><em>Тип рубки чаша или лапа (любой).</em></li>\\n <li><em>Потолочные и половые балки — лафет 0.15 м.</em></li>\\n <li><em>Стропильная система – брус 50x200 мм., через 60 см.</em></li>\\n <li><em>Фронтоны крыши зашиваются по каркасу вагонкой.</em></li>\\n <li><em>Обрешетка крыши – доска обрезная 25x150 мм.</em></li>\\n <li><em>Покрытие крыши рубероидом.</em></li>\\n <li><em>Все расходные материалы (лен, скобяные изделия, гидроизоляция фундамента, рубероид).</em></li>\\n <li><em>Доставка по Московской области, и др. регионам центральной части РФ (Ярославская, Рязанская, Нижегородская, Тверская, Калужская, Тульская, Владимирская, Ивановская обл. и др. регионы РФ).</em></li>\\n <li><em>Разгрузочные работы и сборка на участке заказчика.</em></li>\\n</ul>\\n<p class=\"black art\">Стоимость базового комплекта сруба под крышу с доставкой, разгрузкой и сборкой:</p>\n"
"<hr />\\n\\n<h3 class=\"brown art\">Базовая комплектация обычно включает в себя (включая сборку и доставку):</h3>\\n<ul>\\n <li><em>Сруб из строганного бревна, средний диаметр 25 см. (вершинка).</em></li>\\n <li><em>Высота потолков 1 этажа 2.7 м., 2 этажа 2.5-2.7 м.</em></li>\\n <li><em>Перегородки по проекту рубленные из такого же бревна, 1 этаж.</em></li>\\n <li><em>Тип рубки чаша или лапа (любой).</em></li>\\n <li><em>Потолочные и половые балки — лафет 0.15 м.</em></li>\\n <li><em>Стропильная система – брус 50x200 мм., через 60 см.</em></li>\\n <li><em>Фронтоны крыши зашиваются по каркасу вагонкой.</em></li>\\n <li><em>Обрешетка крыши – доска обрезная 25x150 мм.</em></li>\\n <li><em>Покрытие крыши рубероидом.</em></li>\\n <li><em>Все расходные материалы (лен, скобяные изделия, гидроизоляция фундамента, рубероид).</em></li>\\n <li><em>Доставка по Московской области, и др. регионам центральной части РФ (Ярославская, Рязанская, Нижегородская, Тверская, Калужская, Тульская, Владимирская, Ивановская обл. и др. регионы РФ).</em></li>\\n <li><em>Разгрузочные работы и сборка на участке заказчика.</em></li>\\n</ul>\\n<p class=\"black art\">Стоимость базового комплекта сруба под крышу с доставкой, разгрузкой и сборкой:</p>")
matches = re.finditer(regex, test_str)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html