Есть конструкция которая парсит команду /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 повторов. Продвижение своими сайтами как стратегия роста и независимости