Я пытаюсь найти регулярное выражение, которое будет соответствовать нескольким тегам html, исключить содержимое между ними, чтобы теги упаковки можно было заменить другим тегом html. Эта замена должна работать с большим HTML-документом, в котором есть много экземпляров одного и того же формата <div><strong>...</strong></div>.
<div>
<div><strong>Heading</strong></div>
<div>Some other content<div>
<div><strong>Heading Title 2</strong></div>
<div>Some more content</div>
</div>
<div>
<div class = "heading">Heading</div>
<div>Some other content<div>
<div class = "heading">Heading Title 2</div>
<div>Some more content</div>
</div>
Мне удалось найти регулярное выражение, которое будет соответствовать полной строке, но я не знаю, как исключить содержимое Heading, а затем как лучше всего заменить внешние теги.
Лучшее регулярное выражение, которое у меня есть: /<div><strong\b[^>]*>(.*?)</strong></div>/g



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Используйте заменить, чтобы заменить div заново отформатированным div.
[...document.querySelectorAll('div > strong')].forEach(item => {
// item is the 'strong' element
// Create a new div
let div = document.createElement('div')
// Add a heading class to the div
div.classList.add('heading')
// Set the text of the div
div.innerHTML = item.innerHTML
// Replace the 'strong' elements parent with the new div
item.parentNode.replaceWith(div)
}).heading {
font-size: 20px;
font-weight: bold;
}<div>
<div><strong>Heading</strong></div>
<div>Some other content<div>
<div><strong>Heading Title 2</strong></div>
<div>Some more content</div>
</div>Используемое вами регулярное выражение должно работать. Вы можете использовать $1, чтобы скопировать группу захвата в результат.
const html = `<div>
<div><strong>Heading</strong></div>
<div>Some other content<div>
<div><strong>Heading Title 2</strong></div>
<div>Some more content</div>
</div>`;
const new_html = html.replace(/<div><strong\b[^>]*>(.*?)</strong></div>/g, '<div class = "heading">$1</div>');
console.info(new_html);Обратите внимание, что это плохой подход, если вы пытаетесь обновить DOM всего документа. Замена всего HTML приведет к отбрасыванию любого динамического состояния, такого как пользовательский ввод, прослушиватели событий, поскольку весь HTML повторно анализируется с нуля. Лучше использовать методы элемента DOM, как в ответе @GetOffMyLawn.
по какой причине вам нужен Reg Ex вместо простой замены примитивного содержимого в строке?