Пожалуйста, помогите с правильным соответствием RegEx. Любые 2 буквы, за которыми следует любая комбинация из 6 целых чисел.
These would be valid:
RJ123456
PY654321
DD321234
These would not
DDD12345
12DDD123
Пожалуйста, помогите с правильным соответствием RegEx. Любые 2 буквы, за которыми следует любая комбинация из 6 целых чисел.
These would be valid:
RJ123456
PY654321
DD321234
These would not
DDD12345
12DDD123
[a-zA-Z]{2}\d{6}
[a-zA-Z]{2}
означает две буквы \d{6}
означает 6 цифр
Если вы хотите только прописные буквы, тогда:
[AZ]{2}\d{6}
Вы можете попробовать что-то вроде этого:
[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}
Я в зависимости от языка regexp вы используете, но неофициально, это было бы:
[:alpha:][:alpha:][:digit:][:digit:][:digit:][:digit:][:digit:][:digit:]
где [:alpha:] = [a-zA-Z]
и [:digit:] = [0-9]
Если вы используете язык регулярных выражений, который допускает конечные повторения, это будет выглядеть так:
[:alpha:]{2}[:digit:]{6}
Правильный синтаксис зависит от конкретного языка, который вы используете, но это идея.
Все, что вам нужно здесь, можно найти в этом руководстве по быстрому старту. Прямым решением было бы [A-Za-z][A-Za-z]\d\d\d\d\d\d
или [A-Za-z]{2}\d{6}
.
Если вы хотите принять только заглавные буквы, замените [A-Za-z]
на [AZ]
.
В зависимости от того, поддерживает ли ваш аромат регулярного выражения, я могу использовать:
\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