Regular Expression for Range (2-16)

Viewed 56926

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:

The regex [0-9] matches single-digit numbers 0 to 9. [1-9][0-9] matches double-digit numbers 10 to 99.

Something like ^[2-9][1-6]$ matches 21 or even 96! Any help would be appreciated.

5 Answers

Use the python package regex_engine for generating regular expressions for numerical ranges

You can install this package with 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)
Related