Проектная лаборатория
Собственный Grep
Этап 02 · Основные этапы
Поиск цифр
Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.
На этом этапе вы добавите поддержку класса символов «цифры» (\d).
Классы символов
Классы символов — специальные шаблоны регулярных выражений, соответствующие определённым наборам символов. Вместо одного заданного символа (например, "a" или "3") класс соответствует любому символу из указанной группы.
Класс можно записать обратной косой чертой и следующей за ней буквой, например \d или \w, обозначающими определённую группу символов.
Класс символов \d
Класс \d соответствует одной любой цифре (0-9).
Например:
\dдолжно находить совпадение в"3".\dдолжно находить совпадение в"foo101".\dне должно находить совпадение в"c".\dне должно находить совпадение в"Art".
Если шаблон содержит \d, нужно проверить, есть ли во входной строке хотя бы одна цифра.
Проверки
Тестирующая система запустит программу так:
$ echo -n "apple123" | ./your_program.sh -E "\d"Программа должна:
- Завершиться с кодом
0, если во входной строке найдена цифра. - Завершиться с кодом
1, если во входной строке нет цифр.
Примечания
- Чтобы разобраться, как устроены регулярные выражения, реализуйте их самостоятельно с нуля, не используя встроенные средства Go для работы с ними.
Проверка в вашей IDE
Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.
Настройка проекта и IDE
1. Создайте проект один раз
node '/opt/graphlms/tools/project-lab/cli.mjs' init grep ./my-grep --language go2. Откройте папку в IDE
cd ./my-grepРеализуйте требования этапа в созданном проекте.
Запустите из папки проекта
node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage oq2Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.
Результат проверки
go / ЛОКАЛЬНОПодключение к локальной проверке…
Здесь появится результат
Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.