Remova todas as tags HTML vazias?

stou imaginando uma função que eu acho que usaria Regex e seria recursiva para instâncias como<p><strong></strong></p> para remover todas as tags HTML vazias dentro de uma string. Isso teria que levar em conta espaço em branco, se possível. Não haveria instâncias malucas em que <caractere estivesse sendo usado em um valor de atributo.

Sou péssimo em regex, mas imagino que isso seja possível. Como você pode fazer isso

qui está o método que eu tenho até agor

Public Shared Function stripEmptyHtmlTags(ByVal html As String) As String
    Dim newHtml As String = Regex.Replace(html, "/(<.+?>\s*</.+?>)/Usi", "")

    If html <> newHtml Then
        newHtml = stripEmptyHtmlTags(newHtml)
    End If

    Return newHtml
End Function

No entanto, meu Regex atual está no formato PHP e parece não estar funcionando. Não estou familiarizado com a sintaxe regex do .NET.

Para todos aqueles que dizem não usar regex: Estou curioso para saber qual seria o padrão. Certamente, existe um padrão que pode corresponder a todas as tags iniciais de abertura / fechamento com qualquer quantidade de espaço em branco (ou nenhum) entre as tags? Eu vi regex que corresponde a tags HTML com qualquer número de atributos, uma tag vazia (como apenas<p></p>) etc.

té agora, tentei os seguintes padrões de regex no método acima sem sucesso (como em, eu tenho uma string de texto com tags de parágrafos vazios que nem foram removidas

Regex.Replace(html, "/(<.+?>\s*</.+?>)/Usi", "")

Regex.Replace(html, "(<.+?>\s*</.+?>)", "")

Regex.Replace(html, "%<(\w+)\b[^>]*>\s*</\1\s*>%", "")

Regex.Replace(html, "<\w+\s*>\s*</\1\s*>", "")

questionAnswers(4)

yourAnswerToTheQuestion