Регулярное выражение для ввода нескольких чисел - PullRequest
0 голосов
/ 13 октября 2018

Я относительно новичок в этом, но я пытаюсь сделать регулярное выражение в формате нескольких чисел в диапазоне от 1 до 1000, например: 1 200 300 2 245

    public static final String PERSON_INDEX_VALIDATION_REGEX = "^([0-9]|[1-9][0-9]|[1-9][0-9][0-9]|1000) +$";

Однако то, что я сделал выше, делаетне похоже на работу, мне просто интересно, если это правильно.Если это так, то проблема, вероятно, в какой-то другой части моего кода.

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Вы должны использовать квантификатор для разрешения нескольких чисел:

^(?:[1-9][0-9]{0,2}|1000)(?: +(?:[1-9][0-9]{0,2}|1000))*$

DEMO

Объяснение:

^                                   : beginning of the string
    (?:                             : start non capture group
        [1-9][0-9]{0,2}             : 1 digit from 1 to 9, followed by optional 1 or 2 digits (i.e. from 1 to 999)
      |                             : OR
        1000                        : 1000
    )                               : end group
    (?:                             : start non capture group
         +                          : 1 or more spaces
        (?:[1-9][0-9]{0,2}|1000)    : same as above
    )*                              : group may appear 0 or more times
$                                   : end of string
0 голосов
/ 13 октября 2018
^[1-9][0-9]{0,2}$|^1000$

^ - starts with
[1-9] - first char [1-9]
[0-9]{0,2} - then 0-2 chars [0-9]
$- ends with 
^[1-9][0-9]{0,2}$ - numbers ranging from 1-999
|^1000$ - or 1000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...