Since the alternation operator has the lowest precedence of all, the parentheses are required to group the alternatives together. The regex then becomes \b ( | | 1 | 2 | 25 ) \b.
If you’re searching for these numbers in a larger document or input string, use word boundaries to require a non-word character (or no character at all) to precede and to follow any valid match. This matches the numbers we want, with one caveat: regular expression searches usually allow partial matches, so our regex would match 123 in 12345. Putting this all together using alternation we get: | | 1 | 2 | 25. In the 3-digit range in our example, numbers starting with 1 allow all 10 digits for the following two digits, while numbers starting with 2 restrict the digits that are allowed to follow. Finally, 25 adds 250 till 255.Īs you can see, you need to split up the numeric range in ranges with the same number of digits, and each of those ranges that allow the same variation for each digit. Matching the three-digit numbers is a little more complicated, since we need to exclude numbers 256 through 999. The regex matches single-digit numbers 0 to 9. To match all characters from 0 to 255, we’ll need a regex that matches between one and three characters.
Since regular expressions work with text, a regular expression engine treats 0 as a single character, and 255 as three characters. This character class matches a single digit 0, 1, 2 or 5, just like.
is a character class with three elements: the character range 0-2, the character 5 and the character 5 (again). Though a valid regex, it matches something entirely different. You can’t just write to match a number between 0 and 255. Since regular expressions deal with text rather than with numbers, matching a number in a given range takes a little extra care. Matching Numeric Ranges with a Regular Expression