Skip to main content
eLearner.app
Module 5 · Lesson 2 of 418/32 in the course~8 min
Module lessons (2/4)

Ranges inside classes: `[a-z0-9]`

Listing every character one by one is tedious. Classes accept ranges with the hyphen -: [a-z] matches any lowercase letter, [0-9] a digit, [A-Z] an uppercase letter.

Code
Pattern: [a-z]+
Sample:  Ciao Mondo 123
          ^^^  ^^^^

The range uses code point order (essentially ASCII for Latin characters): a-z means "every character from the code point of a to the code point of z", so 26 letters.

Combining ranges

Inside a single class you can mix multiple ranges and individual characters:

Code
[a-zA-Z0-9_]   identical to \\w (in ASCII)
[a-fA-F0-9]    hexadecimal digits
[0-9.]         digits or the dot (for decimal numbers)

Order does not matter: [0-9a-z] and [a-z0-9] are identical.

Ranges and ASCII character order

Ranges like [a-z] strictly follow the character order in the ASCII table. Writing an invalid range, such as [z-a], will trigger a regex compilation error. A literal dash should be placed at the start or end: [a-z-].

Try it

Exercise#regex.m5.l2.e1
Attempts: 0Loading…

Find every hexadecimal sequence of 6 characters (e.g. the color code #1a2b3c). Digits go from 0 to 9, letters from a to f (uppercase or lowercase).

Loading editor…
Show hint

Add A-F to the range, or use the i flag.

Solution available after 3 attempts

Review exercise

Exercise#regex.m5.l2.e2
Attempts: 0Loading…

Find every product code made of 3 uppercase letters followed by 4 digits (e.g. ABC1234).

Loading editor…
Show hint

For digits you can use \\d or the range [0-9]: this exercise requires explicit [0-9].

Solution available after 3 attempts

Additional challenge

Exercise#regex.m5.l2.e3
Attempts: 0Loading…

Find hex characters in the text (digits 0-9 and letters A-F, both upper and lowercase).

Loading editor…
Show hint

Combine three ranges: 0-9, a-f, A-F.

Solution available after 3 attempts