Настраиваемая последовательность символов для скрытия действительного объекта должна быть тщательно выбрана, чтобы случайный контент не содержал случайно такую ​​же последовательность. Хотя шансы минимальны, но признаются, что это не полностью защищенное решение ...

я есть плохо отформатированный XML, который я должен проанализировать. Исправление проблемы в восходящем потоке невозможно.

(Текущая) проблема в том, что символы амперсанда не всегда экранированы должным образом, поэтому мне нужно преобразовать& в&

Если&amp; уже есть, я не хочу менять его на&amp;amp;, В общем, если какая-то правильно сформированная сущность уже существует, я не хочу ее разрушать. Я не думаю, что вообще возможно знать все сущности, которые могут появиться в каком-либо конкретном XML-документе, поэтому я хочу найти решение, где что-нибудь подобное&<characters>; сохраняется

где<characters> некоторый набор символов, определяющих сущность между начальным& и закрытие;, В частности,< а также> находятсяне литералы, которые в противном случае обозначали бы элемент XML.

Теперь при разборе, если я увижу&<characters> Я не знаю, столкнусь ли я с;, (пробел), конец строки или другой&, Так что я думаю, что я должен помнить<characters> как я смотрю вперед для персонажа, который скажет мне, что делать с оригиналом&.

Я думаю, что для этого мне нужна мощность автомата Push Down, я не думаю, что конечный автомат будет работать из-за того, что я считаю требованием к памяти - это правильно? Если мне нужен КПК, то регулярное выражение в вызовеString.replaceAll(String, String) не сработает Или существует регулярное выражение Java, которое может решить эту проблему?

Помните: в строке может быть несколько замен.

(Я знаю оэтот вопрос, но он не дает ответа, который я ищу.)

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

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