Доброго времени суток! Встала задача извлекать из содержимого переменной число, которое находится в середине. Пример сообщения: PHP: <?php $message = "MessageText: 001 Alex" Из этого сообщения мне нужно в отдельные переменные записать: 001 / Alex Имя (Alex) получаю следующим образом: PHP: <?php $name = substr("$message", 17); А вот с номером уже возникает проблема. Кол-во символов в номере неизменно равно 3, а вот ник может изменяется. Через substr у меня получается только обрезать так "001 Alex" или "Alex". Как мне из этого сообщения извлечь номер, если я незнаю, на какое кол-во символов обрезать справа?
PHP: <?php $message = "MessageText: 001 Alex"; preg_match('/(?<number>[0-9]+)\s?(?<name>[a-z]+)$/i', $message, $matches); echo $matches['number']; // 001 echo $matches['name']; // Alex P.S. Если шаблон строки строго определен, то можно еще проще PHP: $parts = explode(' ', $message); echo $parts[1]; // 001 echo $parts[2]; // Alex
Ищите сначала вхождение строки MessageText:, так вы найдете начальную позицию подстроки, которую необходимо получить --- Добавлено --- Ну да, или как подсказали выше - регуляркой