Regex 2 цифры, разделенные запятыми, не все обязательно - PullRequest
2 голосов
/ 12 октября 2009

Мне нужно регулярное выражение для следующего ввода:

[2 цифры], запятая, [две цифры], запятая, [две цифры]

2 цифры не могут начинаться с 0. Разрешается вводить только первые 2 цифры. Или введите первые 2 цифры, затем запятую, а затем следующие 2 цифры. Или введите полную строку, как описано выше.

Допустимый ввод:

10
99
17,56
15,99
10,57,61
32,44,99

Может ли кто-нибудь помочь мне с этим регулярным выражением?

На данный момент у меня есть это регулярное выражение, но оно не ограничивает ввод максимум 3 группами по 2 цифры:

^\d{2}(?:[,]\d{2})*$

Ответы [ 2 ]

13 голосов
/ 12 октября 2009
^[1-9]\d(?:,[1-9]\d){0,2}$

Первая часть ([1-9]\d) - это просто первое число, которое должно присутствовать всегда. Он состоит из ненулевой цифры и произвольной второй цифры (\d).

Далее следует группа без захвата ((?:...)), содержащая запятую, за которой следует еще одно двузначное число (,[1-9]\d), аналогичное первому. Эта группа может повторяться от нуля до двух раз ({0,2}), поэтому вы получаете либо нет, либо одну, либо две последовательности запятой и другого числа.

Вы можете легко развернуть деталь в фигурных скобках, чтобы получить больше разрешенных чисел.

1 голос
/ 12 октября 2009
^[1-9]\d([,][1-9]\d){0,2}$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...