Regex Character Classes — Pattern Matching for Text Length
Regular expressions (regex) are powerful tools for validating text length, format, and character composition. Character classes — the building blocks of regex patterns — let you define exactly which characters are acceptable in each position. This guide covers essential character classes and practical patterns for text validation.
Basic Character Classes
| Pattern | Matches | Example |
|---|---|---|
[a-z] | Lowercase letters | a, b, z |
[A-Z] | Uppercase letters | A, B, Z |
[0-9] or \d | Digits | 0, 5, 9 |
\w | Word characters (letters, digits, _) | a, 3, _ |
\s | Whitespace | space, tab, newline |
. | Any character (except newline) | a, 1, @ |
Quantifiers for Length Validation
| Quantifier | Meaning | Example Pattern |
|---|---|---|
{n} | Exactly n times | \d{4} — exactly 4 digits |
{n,m} | Between n and m times | [a-z]{3,8} — 3 to 8 lowercase letters |
{n,} | At least n times | .{10,} — at least 10 characters |
+ | One or more | \w+ — one or more word characters |
* | Zero or more | \d* — zero or more digits |
? | Zero or one | \d? — optional digit |
Practical Validation Patterns
- Email format:
^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,}$ - Password (8+ chars, letter + digit):
^(?=.*[a-zA-Z])(?=.*\d).{8,}$ - Phone number (US):
^\d{3}-\d{3}-\d{4}$ - Username (3–20 alphanumeric):
^[a-zA-Z0-9_]{3,20}$
Unicode Considerations
Standard character classes like \w may not match non-Latin characters. For international text validation, use Unicode property escapes: \p{Letter} matches any Unicode letter. Support varies by regex engine — JavaScript requires the u flag.
Conclusion
Regex character classes and quantifiers provide precise control over text validation. Use {n,m} quantifiers to enforce length constraints. Test your patterns with Character Counter to verify text lengths before applying regex validation.