Регулярное выражение для соответствия простым значениям "id"? - PullRequest
1 голос
/ 19 марта 2011

Мне нужно регулярное выражение для строки, которая начинается с двух символов, за которыми следуют 2-4 цифры или 2-4 цифры, за которыми следует "-", а затем 2-4 цифры.

Примеры:

  • AB125
  • AC123-25 ​​
  • BT1-2535

Кажется простым, но я застрял с этим ...

Ответы [ 2 ]

4 голосов
/ 19 марта 2011

Регулярные выражения всегда кажутся простыми, вплоть до того момента, когда вы пытаетесь их использовать: -)

Этот конкретный пример можно сделать с чем-то вроде:

^[A-Z]{2}([0-9]{2,4}-)?[0-9]{2,4}$

То есть:

  • 2 буквенных (прописных) символа.
  • необязательная последовательность от 2 до 4 цифр и дефис.
  • обязательная последовательность из 2-4 цифр.
  • начальный и конечный маркеры.

Последний, BT1-2535, кстати, не соответствует вашей текстовой спецификацииу него есть только одна цифра перед дефисом.Я предполагаю, что это была опечатка.Вам также придется изменить бит символа, чтобы использовать [A-Za-z], если вы также хотите разрешить использование строчных букв.

1 голос
/ 19 марта 2011

Как насчет:

^[A-Z]{2}\d{2,4}(?:-\d{2,4})?

Это соответствует двум заглавным буквам, за которыми следуют 2-4 цифры, за которыми следует (необязательно) дефис и еще 2-4 цифры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...