В C # вы можете использовать следующий код:
string html = @"
<h1>
<img src="" ... >
</img>
<img></img>-bad
<img/>-bad
<img src="" ... />
</h1>";
string result = Regex.Replace(html, @"<img\s[^>]*>(?:\s*?</img>)?", "", RegexOptions.IgnoreCase);
Но имейте в виду, что модификация HTML с помощью Regex - не очень хороший подход, лучше использовать Html Agility Pack
или другие парсеры HTML.