Java matcher regex, как обрабатывать множественные, если еще [закрыто]JAVA

Программисты JAVA общаются здесь
Anonymous
Java matcher regex, как обрабатывать множественные, если еще [закрыто]

Сообщение Anonymous »

У нас есть файлы, которые мы читаем и пытаемся переименовать в некоторых сценариях и ниже кода. />[*]data/file2_2025-01-01.csv -->
after renaming renaming

data/datefolder=2025-01-01/file2_2025-01-01.csv

Код: Выделить всё

String regex = "[0-9]{4}[_-][0-9]{2}[_-][0-9]{2}";

java.util.regex.Matcher m = java.util.regex.Pattern.compile(regex).matcher(context.CurrentFileName);

if (m.find()) {
context.CurrentFileDate = "datefolder="+(m.group(0).trim().substring(0,4))+"-"+(m.group(0).trim().substring(5,7))+"-"+(m.group(0).trim().substring(8,10));
} else {
context.CurrentFileDate = "datefolder="+formattedDate;                    }

Теперь мы получаем интересные имени файлов и нуждаемся в некоторой справке, как я могу изменить вышеупомянутый />[*] data/file2_2025-01-01.csv-> после переименования данных переименования/datefolder = 2025-01-01/file2_2025-01-01.csv
[*]data/yyye=2029/file3.csv data/datefolder=2029-01-01/file3.csv
[*]
  • (SO If there is a prefix of YYYY=2029, modify datefolder to get year from yyyy datefolder=2029-01-01 )
[*] data/yyyy=2029/mm=03/file4.csv-> после переименования данных/datefolder = 2029-03-01/file4.csv
[*]
  • (так что если есть Prefix of yyyy = 2029 & mm = 03, 03 = 03, чтобы получить модность. Yyyy и месяц от MM, так что DateFolder = 2029-03-01)
data/yyyy=2029/mm=04/dd=22/file5.csv-> после RENAMING DATA/DATEFOLDER = 2029-04-22/file5.csv-> после RENAMING DATAFOLDERDERDERDER = 2029-04-22/file5.CS >CS >CS >CS >CS> />

(Итак, если есть префикс yyyy = 2029 & mm = 03, измените дату, чтобы получить год от Yyyy и месяц от MM и дня от DD, так что Datefolder = 2029-04-22) < /li>
< /ul>

< /br />

. Предложение, как изменить вышеупомянутый>

Подробнее здесь: https://stackoverflow.com/questions/796 ... le-if-else

Вернуться в «JAVA»