Как сопоставить диапазон многозначных чисел с регулярным выражением Ruby? - PullRequest
2 голосов
/ 05 февраля 2011

Я пытаюсь сопоставить временной код в формате от «0000» до «2459».Как я могу сопоставить числа в определенном диапазоне, чтобы я мог специально сопоставить все числа от 0 до 24 и все числа от 0 до 59, и ничего больше или меньше?

Я знаю, как сопоставить каждую отдельную цифру, но это не будет делать то, что я хочу, потому что, например,

/[0-2][0-4]/

будет захватывать числа 0-4, 10-14 и 20-24, пропуская их между.Поэтому я хочу захватить все включено для нескольких цифр.

Ответы [ 2 ]

11 голосов
/ 05 февраля 2011

Следующее должно сделать трюк:

/(?:[01][0-9]|2[0-4])[0-5][0-9]/

Пояснение:

  • ?: делает скобки не захватывающими.
  • В скобках мы просто сопоставляем либо 00-19, либо 20-24.
  • После этого мы сопоставляем 00-59.
0 голосов
/ 28 июля 2016

Себастьян не отвечает, когда code MOD 10 > 59. Например, он не распознает 1080

Использование /(?:[01][0-9][0-9]|2(?:[0-3][0-9]|4[0-5]))[0-9]/ вместо который принимает 4-значный номер, начинающийся либо с

  • с 0 или 1, ИЛИ
  • с 23, ИЛИ
  • с 245
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...