Paste any regular expression and get an instant, plain-English, token-by-token breakdown of exactly what it matches. Perfect for understanding regex you found online, inherited from a teammate, or wrote a while ago and forgot how it works. No signup, no cost, no limit.
Regular expressions are compact, but that compactness comes at a cost: a pattern like ^(?=.*[A-Z])(?=.*\d).{8,}$ is unreadable at a glance, even for experienced developers. This Regex Explainer takes any pattern you paste in and breaks it apart into individual tokens, explaining each one in plain English so you can understand exactly what the whole expression matches.
Unlike a regex tester, which only tells you whether a specific string matches, this tool explains the pattern itself — the structure, the anchors, the character classes, the quantifiers, and the groups — so you understand the "why" behind the match, not just the "yes/no".
Running a regex against sample input tells you whether it works for that one case, but it does not tell you why it works, or what edge cases it might silently fail on. Reading and understanding the pattern token by token is the only reliable way to know its true behavior — especially for regexes inherited from old code, copied from Stack Overflow, or generated by a tool. A quick breakdown also helps during code review, when you need to verify that a regex actually does what a pull request claims it does.
The explainer scans your pattern from left to right, one logical unit at a time. Each unit — an anchor like ^ or $, a character class like [a-z0-9], a shorthand class like \d or \s, a group opener like ( or (?:, or a quantifier like +, *, or {2,4}— is identified and paired with a plain-English description. Flags after the closing slash (such as /pattern/gi) are parsed separately and explained in their own section.
| Symbol | Meaning |
|---|---|
^ | Start of string/line |
$ | End of string/line |
. | Any character except newline |
\d \w \s | Digit, word character, whitespace (and their uppercase negations) |
[...] | Character class — matches one character from the set |
( ) (?: ) | Capturing / non-capturing group |
(?= ) (?! ) | Positive / negative lookahead |
* + ? {n,m} | Quantifiers — how many times the preceding token repeats |
| | Alternation (OR) |
^, $) first to understand whether the whole string or a substring is being matchedIf you need to build a new pattern from a plain-English description rather than decode an existing one, try the Regex Generator instead.