Вы должны знать, что все попытки обработать XML с использованием регулярных выражений неверны, в том смысле, что (а) будут некоторые законные способы написания XML-документа, которые не соответствуют регулярному выражению, и (б)будут некоторые способы получения ложных совпадений, например, вставляя неприятные вещи в комментарии XML.Иногда быть правым в 99% случаев, конечно, нормально, но не делайте этого на производстве, потому что скоро у нас будут люди, пишущие на SO: «Мне нужно сгенерировать XML с атрибутами в определенном порядке, потому что это то, что получает приложение».require. "
Ваше регулярное выражение, например, требует, чтобы атрибут был в двойных, а не в одинарных кавычках, и он не допускает пробелы вокруг знака" = "или в некоторых других местах, где XML допускает пробелы,Если есть какой-то риск того, что люди намеренно попытаются победить ваше регулярное выражение, вам нужно учесть уловки, например, когда люди пишут p
вместо p
.
, даже если это одноразовый вариант без риска злонамеренного использования.Subversion, тебе гораздо лучше делать это с XPath.Затем он становится простым запросом вроде //instance_materal[@symbol[not(contains(., 'part'))]]