Regular Expression - Two Digit Range (23-79)?

If I want 2 digit range 0-63

/^[0-9]|[0-5][0-9]|6[0-3]$/
  1. [0-9] will allow single digit from 0 to 9
  2. [0-5][0-9] will allow from 00 to 59
  3. 6[0-3] will allow from 60 till 63

This way you can take Regular Expression for any Two Digit Range


Since you're not indicating whether this is in addition to any other characters (or in the middle of a larger string), I've included the logic here to indicate what you would need to match the number portion of a string. This should get you there. We're creating a range for the second numbers we're looking for only allowing those characters. Then we're comparing it to the other ranges as an or:

(2[3456789]|[3456][0-9]|7[012345])

As oded noted you can do this as well since sub ranges are also accepted (depends on the implementation of REGEX in the application you're using):

(2[3-9]|[3-6][0-9]|7[0-5])

Based on the title you would change the last 5 to a 9 to go from 75-79:

(2[3-9]|[3-6][0-9]|7[0-9])

If you are trying to match these numbers specifically as a string (from start to end) then you would use the modifiers ^ and $ to indicate the beginning and end of the string.

There is an excellent technical reference of Regex ranges here:

http://www.regular-expressions.info/numericranges.html

If you're using something like grep and trying to match lines that contain the number with other content then you might do something like this for ranges thru 79:

grep "[^0-9]?(2[3-9]|[3-6][0-9]|7[0-9])[^0-9]?" folder

This tool is exactly what you need: Regex_For_Range

From 29 to 79: \b(2[3-9]|[3-7][0-9])\b

From 29 to 75: \b(29|[3-6][0-9]|7[0-5])\b

And just for fun, from 192 to 1742: \b(19[2-9]|[2-9][0-9]{2}|1[0-6][0-9]{2}|17[0-3][0-9]|174[0-2])\b :)

Tags:

Regex