Есть конструкция которая парсит команду /start в телеграм боте c параметрами.
$command = '/start 123';
$regex = '/(\/start\s)(\d+)/';
if(preg_match($regex, $command, $match)) {
echo 'start with parameter detected';
}
Как в регулярном выражении указать, что (\d+) опциональный параметр?
Что бы можно было отлавливать как /start так и /start 123?
Используйте квантификатор ? следующим образом:
$regex = '/(\/start)(?:\s(\d+))?/';
См. демо онлайн.
(\/start) - Захватывающая подмаска №1: /start(?: - начало необязательной незахватывающей подмаски (так как после неё сразу стоит квантификатор ?)
\s - пробельный символ(\d+) - Захватывающая подмаска №2: 1 и более цифр)? - конец необязательной незахватывающей подмаски, 1 или 0 повторов. Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники