Настраиваемая последовательность символов для скрытия действительного объекта должна быть тщательно выбрана, чтобы случайный контент не содержал случайно такую же последовательность. Хотя шансы минимальны, но признаются, что это не полностью защищенное решение ...
я есть плохо отформатированный XML, который я должен проанализировать. Исправление проблемы в восходящем потоке невозможно.
(Текущая) проблема в том, что символы амперсанда не всегда экранированы должным образом, поэтому мне нужно преобразовать&
в&
Если&
уже есть, я не хочу менять его на&
, В общем, если какая-то правильно сформированная сущность уже существует, я не хочу ее разрушать. Я не думаю, что вообще возможно знать все сущности, которые могут появиться в каком-либо конкретном XML-документе, поэтому я хочу найти решение, где что-нибудь подобное&<characters>;
сохраняется
где<characters>
некоторый набор символов, определяющих сущность между начальным&
и закрытие;
, В частности,<
а также>
находятсяне литералы, которые в противном случае обозначали бы элемент XML.
Теперь при разборе, если я увижу&<characters>
Я не знаю, столкнусь ли я с;
, (пробел), конец строки или другой
&
, Так что я думаю, что я должен помнить<characters>
как я смотрю вперед для персонажа, который скажет мне, что делать с оригиналом&
.
Я думаю, что для этого мне нужна мощность автомата Push Down, я не думаю, что конечный автомат будет работать из-за того, что я считаю требованием к памяти - это правильно? Если мне нужен КПК, то регулярное выражение в вызовеString.replaceAll(String, String)
не сработает Или существует регулярное выражение Java, которое может решить эту проблему?
Помните: в строке может быть несколько замен.
(Я знаю оэтот вопрос, но он не дает ответа, который я ищу.)