Для определения правильной маски необходимо сопоставить каждый файл из целевой группы с предложенными вариантами. Целевая группа файлов:
file.mp3pile.mpgmiles.mp3nil.mpeg
Разбор масок: 1) ?il*.m*
?— строго один любой символ.il— обязательные символы.*— любое количество любых символов (включая ноль)..m*— расширение начинается на «m», после чего может быть любое количество символов.- Проверка:
file.mp3: Подходит (f=?,il=il,e=*,.mp3=.m*).pile.mpg: Подходит (p=?,il=il,e=*,.mpg=.m*).miles.mp3: Не подходит. После обязательныхilв имениmilesстоит два символа (es), а маска требует, чтобы передilбыл ровно один символ (?). В словеmilesпередilстоит только один символm, это подходит, но маска?il*.m*дляmiles.mp3сработает так:m(?) +il(il) +es(*). Этот вариант кажется подходящим для всей группы.nil.mpeg: Не подходит. Передilв имениnilстоит символn, но послеilнет символов до точки. Однако*может обозначать пустую последовательность. Проверим:n(?) +il(il) + (пусто)(*). Подходит.
2) ?il*.mp*
- Эта маска требует, чтобы расширение начиналось строго на
mp. - Проверка:
nil.mpeg: Подходит (mpegначинается наmp).file.mp3,pile.mpg,miles.mp3: Подходят.- Однако нужно проверить файлы, которые не должны войти в список:
file.mdb. В этой маске расширение должно начинаться наmp, а вfile.mdbоно начинается наmd. Следовательно,file.mdbотсеивается, что нам и нужно. - Проверим
ilona.mpg: Передilв маске стоит?(один обязательный символ). В имениilonaпередilнет символов. Значит,ilona.mpgне подходит, что правильно.
3) *il?.mp*
?перед точкой означает ровно один обязательный символ послеil.- Проверка:
nil.mpeg: Не подходит. В имениnilпослеilнет ни одного символа, а?требует наличия одного символа.
4) ?il*.mp?
mp?в расширении означает ровно три символа, где первые два —mp, а третий — любой.- Проверка:
nil.mpeg: Не подходит. Расширениеmpegсостоит из 4 символов, а маскаmp?ограничивает расширение тремя символами.
Итог: Маска 2) ?il*.mp* является единственно верной.
- Она выбирает
file.mp3,pile.mpg,miles.mp3иnil.mpeg, так как во всех этих именах передilстоит ровно один символ, а расширение начинается наmp. - Она отсеивает
file.mdb(расширение начинается наmd, а не наmp). - Она отсеивает
ilona.mpg(передilнет символов, а маска?требует наличия одного).
Правильный ответ: 2 Хотите разобрать, как работают маски для более сложных условий фильтрации?
Форма ответа
Ответы и вопросы пользователей