2016-06-06 2 views

ответ

1

Режимы не имеют отношения к цифрам. Если это не единственная альтернатива, которую вы получили, вам, вероятно, следует выбрать другое решение.

10-240: ^(?:2(?:[0-3]\d|40)|1\d\d|[1-9]\d)$

Объяснение:

  1. ^: Anchor, что соответствует началу строки

  2. (?: Non-захвата группы (более производительным, чем захват группы). Я использую их для чередования.

  3. 2: Буквенный символ '2'

  4. [0-3]: одноразрядное от 0 до 3.

  5. \d: один цифровой символ (0-9)

  6. |: Или

3-6 , 2(?:[0-3]\d|40): Число, начинающееся с 2, затем 0-3 и любой цифры или буквально «40». То, что соответствует 200-240

  1. |1\d\d: Или один за ним следует две цифры (0-9). Это соответствует 100-199.

  2. |[1-9]\d: Или цифра между 1-9, за которой следует любая цифра (0-9). Это соответствует 10-99.

  3. $: Якорь, соответствующая концу строки.

Попробуй здесь: https://regex101.com/r/rO4fZ0/1

10-360: ^(?:3(?:[0-5]\d|60)|[12]\d\d|[1-9]\d)$

  1. 3(?:[0-5]\d|60): Буквенный символ 3 с последующим 0-5 и любая цифра или буквально 60. Это соответствует 300 -360.

  2. |[12]\d\d: Или один или два, за которыми следуют две цифры (0-9). Это соответствует 100-299.

  3. |[1-9]\d: Или цифра между 1-9, за которой следует любая цифра (0-9). Это соответствует 10-99.

Попробуй здесь: https://regex101.com/r/lD8oM4/1

1

Лучший способ сделать это так, то с помощью тестера, http://regexr.com

Вот регулярное выражение для матча с 10 до 240.

^(([1-9][0-9])|(1[0-9][0-9])|(2[0-3][0-9])|(240))$ 

Однако, я чувствую, что это, вероятно, не тот инструмент, который вы хотите достичь.

Mike

+0

Вам не хватает 140-199 .... –

+0

Опыты, спасибо! Поправлено –

+1

Мораль истории - Всегда используйте тестер и протестируйте свои регрессы, –

Смежные вопросы