Вот компоненты регулярного выражения, которые мы собираемся использовать:
\d
- сокращение для класса цифровых символов +
- один или-много спецификатора повторения *
является нулевым или более спецификатором повторения (...)
выполняет группировку ^
и $
- начало и конецякоря линии соответственно
Теперь мы можем составить необходимое нам регулярное выражение:
^\d+(,\d+)*$
То есть:
from beginning...
| ...to the end
| |
^\d+(,\d+)*$ i.e. ^num(,num)*$
\_/ \_/
num num
Обратите внимание, что *
означает, что разрешено иметь только один номер.Если вы настаиваете хотя бы на двух числах, используйте вместо этого +
.Вы также можете заменить \d+
другим шаблоном для числа, чтобы разрешить, например, знак и / или дробную часть.
Ссылки
Дополнительные темы: оптимизация
ОпциональноВы можете сделать скобки без захвата для производительности:
^\d+(?:,\d+)*$
И если аромат поддерживает это, вы можете сделать все повторения притяжательными в этом случае:
^\d++(?:,\d++)*+$
Ссылки