Решением было:
/\d+({.*?})(?:\d+|$)/
Сначала проверка на добавление цифр с помощью '\ d +', затем групповое совпадение для всего между фигурными скобками, не будучи при этом жадными до '({. *?}) ', и, наконец, исключенное групповое совпадение'?: 'остановит предыдущее групповое совпадение либо с набором цифр' \ d + ', либо в конце слова' $ ',' (?: \ d + | $) '
В последнем разделе книги Джоша Блоха Эффективная Java , второе издание,
есть хорошее описание. Предположим, у вас есть класс A
, который вы хотел бы сделать сериализуемым. Сначала вы объявляете его для реализации Serializable
. Затем вы используете метод сериализации writeReplace ()
для возврата так называемого «прокси-сервера сериализации», который будет сериализован вместо экземпляра A
. Метод writeReplace ()
не обязательно должен быть открытым. Сериализация по умолчанию для A
никогда не вызывается, поэтому все свойства API A
могут быть сохранены.
Обычно, прокси-сервер реализован как частный статический вложенный класс, который сам должен реализовывать Serializable
(или Externalizable
для полного управления процессом чтения / записи). Поскольку прокси является частным, детали его реализации, такие как наличие конструктора без аргументов и возможность изменения, будут скрыты.
Прокси-сервер хранит достаточно информации о состоянии исходного объекта для записи, чтобы он мог восстановить объект на десериализация. При десериализации прокси использует метод readResolve ()
, чтобы вернуть экземпляр A
. Для синглтонов это может быть сам экземпляр синглтона.
Я написал подробную запись в блоге с примерами Сериализация неизменяемых и синглтонов с помощью прокси-сервера сериализации .
Прокси-сервер хранит достаточно информации о состоянии исходного объекта для записи, чтобы он мог восстановить объект при десериализации. При десериализации прокси использует метод readResolve ()
для возврата экземпляра A
. Для синглтонов это может быть сам экземпляр синглтона.
Я написал подробную запись в блоге с примерами Сериализация неизменяемых и синглетонов с помощью прокси-сервера сериализации .
Прокси-сервер хранит достаточно информации о состоянии исходного объекта для записи, чтобы он мог восстановить объект при десериализации. При десериализации прокси использует метод readResolve ()
для возврата экземпляра A
. Для синглтонов это может быть сам экземпляр синглтона.
Я написал подробную запись в блоге с примерами Сериализация неизменяемых и синглетонов с помощью прокси-сервера сериализации .
Сериализация неизменяемых и синглетонов с помощью прокси-сервера сериализации . Сериализация неизменяемых и синглетонов с помощью прокси-сервера сериализации .