const regex = /<hr\s*\/>\s*[\\n]*\s*(.+<\/p>)/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('<hr\\s*\\\/>\\s*[\\\\n]*\\s*(.+<\\\/p>)', 'g')
const 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>
<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>`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions