Образец RegEx: любые две буквы, за которыми следуют шесть номеров

Пожалуйста, помогите с правильным соответствием RegEx. Любые 2 буквы, за которыми следует любая комбинация из 6 целых чисел.

These would be valid: 
RJ123456
PY654321
DD321234

These would not
DDD12345
12DDD123

Ответ 1

[a-zA-Z]{2}\d{6}

[a-zA-Z]{2} означает две буквы \d{6} означает 6 цифр

Если вы хотите только прописные буквы, тогда:

[AZ]{2}\d{6}

Ответ 2

Вы можете попробовать что-то вроде этого:

[a-zA-Z]{2}[0-9]{6}

Вот прорыв выражения:

[a-zA-Z]    # Match a single character present in the list below
               # A character in the range between "a" and "z"
               # A character in the range between "A" and "Z"
   {2}         # Exactly 2 times
[0-9]       # Match a single character in the range between "0" and "9"
   {6}         # Exactly 6 times

Это будет соответствовать любому предмету. Если вам нужны границы вокруг объекта, вы можете сделать одно из следующих действий:

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

Это гарантирует соответствие всего предмета. Т.е. нет ничего до или после темы.

или

\b[a-zA-Z]{2}[0-9]{6}\b

который обеспечивает наличие границы слова на каждой стороне субъекта.

Как указано в @Phrogz, вы можете сделать выражение более кратким, заменив [0-9] на a \d как в некоторых других ответах.

[a-zA-Z]{2}\d{6}

Ответ 3

Я в зависимости от языка regexp вы используете, но неофициально, это было бы:

[:alpha:][:alpha:][:digit:][:digit:][:digit:][:digit:][:digit:][:digit:]

где [:alpha:] = [a-zA-Z] и [:digit:] = [0-9]

Если вы используете язык регулярных выражений, который допускает конечные повторения, это будет выглядеть так:

[:alpha:]{2}[:digit:]{6}

Правильный синтаксис зависит от конкретного языка, который вы используете, но это идея.

Ответ 4

Все, что вам нужно здесь, можно найти в этом руководстве по быстрому старту. Прямым решением было бы [A-Za-z][A-Za-z]\d\d\d\d\d\d или [A-Za-z]{2}\d{6}.

Если вы хотите принять только заглавные буквы, замените [A-Za-z] на [AZ].

Ответ 5

В зависимости от того, поддерживает ли ваш аромат регулярного выражения, я могу использовать:

\b[A-Z]{2}\d{6}\b    # Ensure there are "word boundaries" on either side, or

(?<![A-Z])[A-Z]{2}\d{6}(?!\d) # Ensure there isn't a uppercase letter before
                              # and that there is not a digit after