Я так плохо создаю регулярное выражение, и я борюсь с тем, что я УВЕРЕН это простое глупое регулярное выражение.
Я использую PHP для этого соответствия. Вот что я имею до сих пор.
Test string: 8848842356063003
if(!preg_match('/^[0-2]|[7-9]{16}/', $token)) {
return array('status' => 'failed', 'message' => "Invalid token", 'token' => '');
}
Регулярное выражение должно соответствовать этому: Начните с 0-2 или 7-9 и получите ТОЧНО 16 символов. Что я делаю не так? Потому что я получаю, как матч:
array(
0 => 8
)
И я должен получить:
array(
0 => 8848842356063003
)
Кстати: я использую PHP Live Regex для проверки строки regex.
Спасибо заранее, Арес Д.
Регулярное выражение должно соответствовать этому: Начните с 0-2 или 7-9 и получите ТОЧНО 16 символов
Вы можете поместить стартовые номера в один и тот же класс символов и использовать конечный якорь после сопоставления еще 15 символов:
/^[0-27-9].{15}$/
Если вы хотите сопоставить только цифры, используйте:
/^[0-27-9]\d{15}$/