Чтобы решить задачу, давайте сначала разберем маску a?be.r*.
Структура маски:
- a — строка должна начинаться с буквы "a".
- ? — любой символ (один). То есть на втором месте может быть любая буква или другой символ.
- * — после второго символа может быть ноль или более символов.
- b — обязательно должна быть буква "b" где-то в строке.
- e — после "b" нужно, чтобы в строке была буква "e".
- . — обязательно должна быть точка после "e".
- r — после точки должна быть буква "r".
- * — после "r" может быть ноль или более символов.
Отбор имен: Давайте посмотрим каждое имя в списке и проверим, соответствует ли оно маске:
abbreviate.txt
- Не начинается с "a".
arbitrary.doc
- Начинается с "a", но дальше нет буквы "b" после "a", так что не удовлетворяет условиям.
able.baker.excel.r1
- Начинается с "a", вторым символом идет "b", достаточно, чтобы была буква "b", после второй буквы идет "l", затем "e".
- Имеется точка, дальше "b", потом "e" и, соответственно, "r", подходит под маску.
alphabet.rp
- Начинается с "a", второй символ "l", но дальше "p" перед "h", не удовлетворяет маске, так как нет "b" после "a".
bell.r1
- Начинается с "b", не удовлетворяет маске, так как не начинается с "a".
able.bake.e.r2
- Начинается с "a", второй символ "b", затем "l", "e", далее есть точка, "b", "e", "r", удовлетворяет маске.
abe.xyz
- Начинается с "a", второй символ "b", есть "e" и заканчивается на "xyz", но нет ".r", не удовлетворяет условиям.
bat.r
- Начинается с "b", не удовлетворяет маске, так как не начинает с "a".
Итог: Имена, которые не удовлетворяют маске a?be.r*:
- abbreviate.txt
- arbitrary.doc
- alphabet.rp
- bell.r1
- abe.xyz
- bat.r
Таким образом, в результате мы выделили 6 имен, которые не соответствуют заданной маске.