Вы не должны использовать regex для этой задачи, особенно когда .NET предоставляет такие мощные инструменты для обработки XML:
XElement xml = XElement.Parse("<rrr><image from=\"91524\" to=\"92505\" /></rrr>");
xml.Descendants("image").Remove();
Однако, если вы настаиваете на этом с помощью регулярных выражений, давайте посмотрим, что произойдет:
string xml = "<rrr><image from=\"91524\" to=\"92505\" /></rrr>";
string output = Regex.Replace(xml, "<image.*?>", "");
Этот метод имеет некоторые проблемы, хотя первый метод решает за вас. Пример задачи:
- Не обрабатывает чувствительность к регистру.
>
символов в атрибутах могут запутать регулярное выражение.
- Символы новой строки не будут совпадать правильно.
- Неправильно соответствует другим тегам, которые начинаются с изображения, например
<image2 />
.
- XML-комментарии могут вызвать проблемы.
- Не обрабатывает
<image />
и <image></image>
.
- и т.д ...
Некоторые из них легко исправить, некоторые сложнее. Но, в конце концов, не стоит тратить время на улучшение решения для регулярных выражений, чтобы справиться со всеми особыми случаями, когда решение LINQ to XML настолько просто и делает все это за вас.