В каталоге находятся файлы со следующими именами:file.mdb file.mp3 ilona.mpg pile.mpg miles.mp3 nil.mpegопределите, по какой из масок будет выбрана указанная группа файлов:file.mp3 pile.mpg miles.mp3 nil.mpeg 1)?il*.m*2)?il*.mp*3)*il?.mp*4)?il*.mp?

Поляков Евгений Александрович

Учитель информатики высшей категории

Проверено учителем

Для определения правильной маски необходимо сопоставить каждый файл из целевой группы с предложенными вариантами. Целевая группа файлов:

  1. file.mp3
  2. pile.mpg
  3. miles.mp3
  4. nil.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 Хотите разобрать, как работают маски для более сложных условий фильтрации?

Форма ответа

Ваш аватар