if (preg_match_all("/!ban ........./i", "!ban 401662529", $arr)) {
$k = var_dump($arr);
var_export($k);
}
Вот тут я получил массив ($arr[0]), что равно !ban 40166252,
Ожидаемый результат:
Array {
[0] => "!ban"
[1] => "40166252"
}
Полученный:
Array {
[0] => "!ban 40166252"
}
Используйте захватывающие подмаски, (!ban)\s+(\d+)
:
if (preg_match_all("/(!ban)\s+(\d+)/i", "!ban 401662529", $arr, PREG_SET_ORDER, 0)) {
array_shift($arr[0]);
print_r($arr[0]);
}
// = Array ( [0] => !ban [1] => 401662529 )
См. демо на PHP.
Подробности
(!ban)
- Захватывающая подмаска №1: строка !ban
\s+
- 1 и более пробельных символов(\d+)
- Захватывающая подмаска №2: одна и более цифр.Аргумент PREG_SET_ORDER
группирует совпадения с захваченными подстроками, а array_shift
удаляет полное совпадение.
Аренда удаленного сервера: цены, провайдеры и условия. Руководство для начинающих
У на есть рандомное число, например 03198319 (количество символов также всегда разное)Как разделить его на числа и добавить их в массив, используя...
Посоветуйте платёжную систему, чтобы на сайте можно было рассчитываться кредитной картой и аудитория сайта будет зарубежная (Европа, США)Плагин...