Я пытаюсь написать регулярное выражение, чтобы удалить все, кроме нескольких закрывающих тегов XML.
Код кажется достаточно простым:
String stringToParse = "<body><xml>some stuff</xml></body>";
Pattern pattern = Pattern.compile("</[^(a|em|li)]*?>");
Matcher matcher = pattern.matcher(stringToParse);
stringToParse = matcher.replaceAll("");
Однако, когда он запускается, он пропускает закрывающий тег «xml». Кажется, что пропускается любой тег, где в скомпилированной группе есть соответствующий символ (a | em | li), т.е. если я удаляю «l» из «li», это работает.
Я ожидаю, что это вернет следующую строку: "<body><xml>some stuff
" (я делаю дополнительный анализ, чтобы удалить открывающие теги, но для примера оставлю это простым).