Java Regex FileName не повторяется - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь установить проверку для неповторяющихся имен файлов, если какой-то файл повторяется, он должен быть записан следующим образом:

  • FILENAME.PDF
  • FILENAME_1.PDF
  • FILENAME_2.PDF

Так что я могу сделать первый, но все остальное, как можно принять?.

Я получу список всех имен файлов документов до, так что теперь я пытаюсь сделать как для каждого документа, но я не знаю, как сделать регулярное выражение для его получения.

FILENAME_1.PDF -> REGEX () -> GET RETURN -> 1


ОБНОВЛЕНИЕ

Если у меня есть эти файлы в моем bbdd: [filename.pdf, filename_1.pdf, filename_2.pdf].

Мне нужно, когда кто-тозагрузить некоторые новые, на основе этих файлов, мое новое имя будет filename_3.pdf, если существует имя файла 2.

FILENAME_VERSION.EXTENSION

Основываясь на этом мне нужно получитьверсия последнего имени файла.Спасибо!

Примечание. Будет больше различий в именах файлов, например, FILANEM_FILENAM_VERSION.pdf


Спасибо!

1 Ответ

1 голос
/ 06 марта 2019

Я бы использовал следующее регулярное выражение:

_(\d+)\.[^.]+$

Или в Java:

_(\\d+)\\.[^.]+$

Регулярное выражение записывает число между подчеркиванием и последней точкой имени файла.

Номер, который вы ищете, захвачен в первой группе захвата и должен быть извлечен с помощью Matcher.group.

Вы можете попробовать здесь :

Не найдено ни одной версии файла filename.pdf
Не найдено ни одной версии файла filename1.pdf
filename_1.pdf - найдена версия: 1
filename1_2.pdf - найдена версия: 2
Версии не найдено в filename_1.test.pdf
filename_1.test_2.pdf - найдена версия: 2
Не найдена версия в filename_1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...