Diversia
@Diversia

PHP: Как выделить из строки 4 цифры?

Здравствуйте.

Есть строка:
$message = "0411 Тест";
Необходимо из этой строки вытащить число 0411. При условии:
1. число может начинаться с нуля;
2. число состоит только из 4 символов;
3. число должно быть в начале строки.

Делаю так:
$message = "0411 Тест";
$prefix = preg_replace('/[^\d]+/','',$message);
if (strlen($prefix) > 4) {$prefix = "error";}

Работает. Но, если строку изменить на:
$message = "0411 Тест 123";
не работает, т.к. получается:
0411123

Подскажите пожалуйста, как правильно составить регулярное выражение.
  • Вопрос задан
  • 1176 просмотров
Решения вопроса 1
$message = "0411 Тест";
// ищем в начале строки 4 цифры 0-9, а далее либо конец строки, либо любой символ, кроме 0-9
if (preg_match('/^([0-9]{4})($|[^0-9]+)/', $message, $matches)) {
    echo $matches[1]; // искомое число
}


Для тестирования регулярок есть неплохой инструмент https://regex101.com/
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии
substr($message, 0, 4);
Ответ написан
Комментировать
qork
@qork
{ background: #F00B42 }
^\d{4}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы