Как regex строка длиной 8, первая буква символа и оставшаяся числовая

Я пытаюсь создать RegEx для соответствия строке со следующим критерием

  • Длина 8
  • Первым символом должна быть буква a-z или A-Z
  • Остальные 7 должны быть числовыми 0-9

примеры

  • a5554444
  • B9999999
  • c0999999

Это то, что я до сих пор

^[0-9]{8}$

Что мне не хватает, чтобы проверить первый символ? Я попробовал

^[a-zA-Z][0-9]{8}$

но это не работает.

Ответ 1

Я думаю, что это то, что вы хотите:

^[a-zA-Z][0-9]{7}$

метасимвол {...} соответствует только самому предыдущему шаблону, который в вашем случае равен [0-9]. интерпретация регулярного выражения выглядит следующим образом:

  • начало в начале строки (^)
  • сопоставить любой символ a-z или A-Z ([a-zA-Z]) в первом месте только один раз
  • соответствует любому символу 0-9, начиная со второго места ([0-9])
  • предыдущий шаблон, упомянутый на шаге 3 из [0-9], должен существовать ровно в 7 раз ({7})

Когда вы ставите {8} в соответствии с вашим исходным вопросом, вы будете считать длину строки длиной 9: первый символ является буквенным регистром нечувствительным, а остальные 8 символов являются числовыми.