здесь ... должно быть

дставляю себе функцию, которая, я думаю, будет использовать Regex, и она будет рекурсивной для таких случаев, как<p><strong></strong></p> удалить все пустые теги HTML в строке. Это должно было бы учитывать пробелы, если это возможно. Не было бы сумасшедших случаев, когда символ <использовался в значении атрибута.

Я довольно ужасен в регулярных выражениях, но я думаю, что это возможно. Как ты можешь это сделать?

Вот метод, который я имею до сих пор:

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

Однако мой текущий Regex в формате PHP, и он, похоже, не работает. Я не знаком с синтаксисом регулярных выражений .NET.

Всем, кто говорит, не используйте регулярные выражения: Мне любопытно, что шаблон будет независимо. Конечно, существует шаблон, который может сопоставить все открывающие / закрывающие начальные теги с любым количеством пробелов (или их нет) между тегами? Я видел регулярное выражение, которое сопоставляет теги HTML с любым количеством атрибутов, один пустой тег (например, просто<p></p>) и т.д.

До сих пор я безуспешно пробовал следующие шаблоны регулярных выражений в вышеприведенном методе (например, у меня есть текстовая строка с пустыми тегами абзацев, которые даже не были удалены).

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*>", "")

Ответы на вопрос(4)

Ваш ответ на вопрос