2015-02-28 3 views
-3

Если у меня была строка, например «Привет, мой номер клиента x, и мне нужно записать ошибку», где x всегда является 16-значным числом. Мне нужно идентифицировать все вхождения 16-значного числа внутри строки.Идентифицировать все вхождения 16-значного числа в строке - php

Каков наилучший способ для этого?

+0

Используйте регулярное выражение, чтобы найти это число. Пометьте этот вопрос тегом регулярных выражений. – MilanG

+0

Вы должны использовать регулярное выражение. – teo

ответ

0

Вы можете использовать регулярное выражение формы [0-9]{16} (цифра, 16 раз). Например:

$message = "blah blah 1024590293404182 blah"; 
$numbers = array(); 
preg_match('/[0-9]{16}/', $message, $numbers); 

После этого, $numbers представляет собой массив со всеми 16-х цифр в $message из. Вы также можете:

$message = "blah blah 1024590293404182 blah"; 
$numbers = array(); 
if (preg_match('/[0-9]{16}/', $message, $numbers)) { 
    // There is a 16-digit number in $message, and all numbers are in $numbers 
} else { 
    // No 16-digit number was found 
} 

См. http://php.net/manual/en/function.preg-match.php.

+0

спасибо, но это похоже только на первое вхождение 16-значного числа – mrsmith

+0

@mrsmith, затем используйте preg_match_all(). – Keelan

+0

отличное спасибо, именно то, что я искал – mrsmith

0
if (preg_match('/[\\d]{16}/', $subject)) { 

} else { 

} 

Пробуйте этот код. Он должен найти 16 цифр в строке.

Смежные вопросы