Регулярное выражение для соответствия определенной модели

1

Я так плохо создаю регулярное выражение, и я борюсь с тем, что я УВЕРЕН это простое глупое регулярное выражение.

Я использую 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.

Спасибо заранее, Арес Д.

Теги:

1 ответ

2
Лучший ответ

Регулярное выражение должно соответствовать этому: Начните с 0-2 или 7-9 и получите ТОЧНО 16 символов

Вы можете поместить стартовые номера в один и тот же класс символов и использовать конечный якорь после сопоставления еще 15 символов:

/^[0-27-9].{15}$/

Если вы хотите сопоставить только цифры, используйте:

/^[0-27-9]\d{15}$/
  • 1
    ИДЕАЛЬНЫЙ! БЛАГОДАРЮ ВАС! Я не знаю, почему я не получаю эти глупые регулярные выражения :( Есть хорошая книга / учебник, который вы можете порекомендовать?
  • 0
    Я бы порекомендовал регулярно- expressions.info для регулярных выражений
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню