I want to match a number between 2-16, spanning 1 digit to 2 digits.
Regular-Expressions.info has examples for 1 or 2 digit ranges, but not something that spans both:
^([2-9]|1[0-6])$
will match either a single digit between 2 and 9 inclusive, or a 1 followed by a digit between 0 and 6, inclusive.
You can install this package by using pip
pip install regex-engine
from regex_engine import generator
generate = generator()
regex = generate.numerical_range(2,16)
print(regex)
^([2-9]|1[0-6])$
You can also generate regexes for floating point and negative ranges
from regex_engine import generator
generate = generator()
regex1 = generate.numerical_range(5,89)
regex2 = generate.numerical_range(81.78,250.23)
regex3 = generate.numerical_range(-65,12)
With delimiters (out of habit): /^([2-9]|1[0-6])$/
The regex itself is just: ^([2-9]|1[0-6])$
^([2-9]|1[0-6])$
(Edit: Removed quotes for clarification.)
(^[2-9]$|^1[0-6]$)
By specifying start and stop for each set of numbers you are looking for your regex won't also return 36, 46, ... and so on. I tried the above solution and found that this works best for staying within the range of 2-16.