Вы можете использовать группу захвата и заменить ее заполнителем на значение, сохраненное в этой группе:
String result = s.replaceAll("(\\d{4}-\\d{2}-\\d{2})Z", "$1");
См. Демонстрационную версию regex .Здесь (\\d{4}-\\d{2}-\\d{2})
- группа захвата из-за пары неэкранированных скобок, ее значение хранится в группе 1. Z
просто соответствует.Когда мы заменяем совпадение на $1
, дата вставляется обратно в результирующую строку, а Z
отбрасывается.
Обратите внимание, что если вы хотите убедиться, что совпадают только четыре цифры, которым не предшествуетеще одну цифру, добавьте к шаблону (?<!\\d)
.
Если вы хотите убедиться, что после Z
нет других букв, вы можете добавить (?![a-zA-Z])
в конце шаблона.