Чтобы сопоставить любое число больше 15, используя регулярное выражение - PullRequest
0 голосов
/ 08 октября 2018

Я пытался сопоставить любое число больше 15, используя следующее регулярное выражение:

0*[1-9][6-9][0-9]*

Но я могу сопоставить только 2-значное число, например.Я не могу успешно сопоставить 12 или 13 (меньше 15), тогда как я не могу сопоставить 105, 124 и т. Д.

Кто-нибудь поможет мне, как решить эту проблему.

1 Ответ

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

Любое число больше 15 равно

  • Любое число с 3 или более цифрами с возможными ведущими нулями

  • Любое число с 2 цифрами гдепервая цифра в классе символов [2-9]

  • Любое число с 2 цифрами, где первая цифра равна 1, а вторая цифра в классе символов [6-9]

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

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

Если вы не можете использовать расширенное регулярное выражение, тогдаследующее должно работать

/^0*[1-9][0-9][0-9][0-9]*|0*[2-9][0-9]|0*1[6-9]$/
...