Regex: Запятая разграничила целые числа

Я пытаюсь создать regex, которые принимают: пустая строка, единственное целое число или несколько целых чисел, разделенных запятой, но, не могут иметь никакого запуска и конечной запятой.

Мне удалось найти это, но я не могу undertsand, как удалить предел цифры

^\d{1,10}([,]\d{10})*$
10
задан Matthew Grima 27 May 2010 в 13:21
поделиться

3 ответа

То, что вы разместили, все еще требует по крайней мере 1 целое число, поэтому оно не будет соответствовать пустой строке:

Вот что вам нужно:

^(\d+(,\d+)*)?$

Объяснение:

  1. поместите все это в круглые скобки и закончите '?' чтобы соответствовать пустой строке.
  2. Всегда начинайте с целого числа, поэтому '\d+'. То есть 1 или более цифровых символов ('0'-'9')
  3. Затем сделайте набор скобок, который содержит ',\d+' и поставьте после него звездочку.
    3a. Внутренние средства начинаются с ',', затем целое число. 3b. Звездочка означает повторение всего внутри скобки 0 или более раз.

Hench все это либо пустая строка, либо начинается с целого числа, затем повторяется ноль или более раз строка, которая начинается с запятой и заканчивается целым числом

35
ответ дан 3 December 2019 в 13:54
поделиться

{1,10} и {10} - это диапазоны. Вы можете заменить их на + для бесконечно-положительного. Например: [

^\d+([,]\d+)*$
3
ответ дан 3 December 2019 в 13:54
поделиться

Попробуйте следующее:

^(\d+(,\d+)*)?$
1
ответ дан 3 December 2019 в 13:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: