Шаблон RegEx для обнаружения двух последовательных чисел, за которыми следует не более 9 символов? - PullRequest
0 голосов
/ 26 ноября 2018

Как я могу создать регулярное выражение, которое обнаруживает любую строку, начинающуюся с двух последовательных чисел, за которыми следует не более девяти последовательных символов с символом дефиса в регулярном выражении Java?Например:

nnccccccccc-nnccccccccc

или

nncccccc-nnccccccccc

или

nnccccccc-nncccccccc

Где n представляет число от 0 до 1 и c буквенный символ,

Пока я пробовал это: https://regex101.com/r/a1eJvY/2.

Ответы [ 4 ]

0 голосов
/ 26 ноября 2018

Попробуйте это [0-1] {2} + [az] {9}.+ -

0 голосов
/ 26 ноября 2018

Вы можете использовать ^(\d{2}[a-zA-Z]{0,9})-(\d{2}[a-zA-Z]{0,9})$ пример: https://regex101.com/r/A2wiHH/2.

Это будет соответствовать строке, как описано ниже:

  1. Начало вашей строки
  2. 2 десятичных знаков
  3. 0-9 символов
  4. -,
  5. 2 десятичных знаков снова,
  6. 0-9 символов снова
  7. Конец твоей струны
0 голосов
/ 26 ноября 2018

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

^\d{1,2}[a-zA-Z]{1,9}-\d{1,2}[a-zA-Z]{1,9}$

Демонстрация RegEx

Если вы используете метод .matches(), тогда ^ и $ не нужны.

  • \d{1,2}: совпадение 1 или 2 цифр
  • [a-zA-Z]{1,9}: сопоставление английских букв от 1 до 9
  • -: сопоставлениебуквальный дефис
0 голосов
/ 26 ноября 2018

Полагаю, что «nn» и ни одна буква не принимаются, поэтому для одной последовательности:

[0,1]{2}\D{0,9}

Объяснение:

[0,1]{2} -> Принять только 0и 1 как число ровно два раза;

\D{0,9} -> Принять общее число от 0 до 9.

Редактировать: вы сказали

Где n представляет собойчисло от 0 до 1

, но если 22may принято, вам нужно число от 0 до 9, поэтому вы должны использовать \d

\d{2}\D{0,9}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...