Вопрос по regex – Шаблон RegEx любые две буквы, за которыми следуют шесть цифр

21

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

These would be valid: 
RJ123456
PY654321
DD321234

These would not
DDD12345
12DDD123
Там не может быть дело более двух букв или 6 цифр. Fergus
А как насчет "ABC1234567"? может ли это когда-нибудь произойти? Phrogz
Будут ли "целые числа" всегда быть западными арабскими цифрами0-9или когда-нибудь будетother digits? Phrogz

Ваш Ответ

5   ответов
2

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

\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
5

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

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

где[:alpha:] = [a-zA-Z] а также[:digit:] = [0-9]

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

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

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

Error: User Rate Limit Exceeded
3

Все, что вам нужно здесь, можно найти вэто краткое руководство. A straightforward solution would be [A-Za-z][A-Za-z]\d\d\d\d\d\d или же[A-Za-z]{2}\d{6}.

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

18

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

[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] для\d как и в некоторых других ответах.

[a-zA-Z]{2}\d{6}
Error: User Rate Limit Exceeded Fergus
Error: User Rate Limit Exceeded\dError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Fergus
65

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

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

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

[A-Z]{2}\d{6}

Error: User Rate Limit Exceeded

Похожие вопросы