PHP - как выделить именах файлов общие корни-маски?
Есть много файлов с именами:
file_des_2020051000_.txt
ptrfile_2020012120_.txt
msk_fin_2020451000_.txt
file_des_20200701_.txt
ptrfile_232342.txt
Как выделить-сгруппировать из всех имен файлов общие маски? Определить их и сгруппировать. Итог должен быть:
file_des_20200.*
ptrfile_2.*
file_des_20200701_.txt
msk_fin_2020451000_.txt
Подтолкните на мысль пожалуйста.
Ответы (1 шт):
Можно разбивать имена файлов на части, например по символу "_". Далее считать число вхождений, позицию вхождений и на основе частотности уже формировать символьную маску.
Потом брать одну символьную маску, отбирать файлы относящиеся к ней и считать цифровую часть маски посимвольно. Например, 2, потом 20, потом 2020 и уже на основании некоего порога вхождения в именах файлов уже формировать числовую маску. Числовую маску посимвольно проверять только на начало числовой части, не брать любое вхождение. Вхождение в середине числа не нужно. Далее просто склеивать символьную и числовую в итоговую маску.
Порог количества вхождений определите экспериментально, исходя из требуемого конечного результата группировки.