Test regular expressions live, with highlighted matches and capture groups.
Write the expression without surrounding slashes.
Email addresses
Find addresses in a block of text
Contact ada@example.com or grace@navy.mil before Friday.Dates with named groups
Capture year, month and day separately
Released 2026-08-08, updated 2027-01-15.Log parsing
Extract levels and messages from log lines
[ERROR] timeout after 30s
[INFO] retrying
[ERROR] connection refusedEmail addresses
Find addresses in a block of text
Contact ada@example.com or grace@navy.mil before Friday.Dates with named groups
Capture year, month and day separately
Released 2026-08-08, updated 2027-01-15.Log parsing
Extract levels and messages from log lines
[ERROR] timeout after 30s
[INFO] retrying
[ERROR] connection refusedType the expression without surrounding slashes, then toggle the flags you need — global, case-insensitive, multiline and the rest.
Matches highlight in place as you type, so you can see immediately whether the pattern is too greedy or too narrow.
Each match lists its position and capture groups. Switch to replace mode to preview a substitution before using it for real.
Highlighting inside the original text shows what a pattern catches and, just as importantly, what it accidentally catches.
Invalid patterns are explained in words — an unclosed group, a stray quantifier — rather than reported as an engine exception.
Matching is capped, so a catastrophically backtracking pattern will stop rather than freeze the tab.
Write a pattern, paste some text, and see exactly what matches as you type. Every match is highlighted in place, and each one is broken out with its position, its capture groups and any named groups. Invalid patterns produce a plain-English explanation — an unclosed bracket, a quantifier with nothing to repeat — instead of a raw engine error. There is also a replace mode so you can check a substitution before running it against real data.
Keep going
Related pages in Developer Tools, plus what others are using right now.
More developer tools that pair well with this one.
Format JavaScript and TypeScript with the same rules your editor uses.
Format, validate and minify JSON, with errors that point to the exact line.
Generate secure random strings, passwords and API keys with entropy shown.
Format SQL queries across dialects, with consistent keyword casing and indentation.
Encode text to Base64, including full Unicode and URL-safe output.
Turn CSV into JSON, with quoted fields and embedded commas handled properly.
Create strong random passwords with full control over length and characters.
Work out any percentage — of a number, as a share, or as a change.
Count words, characters, sentences and paragraphs as you type.
Convert between length, weight, temperature, volume, speed, data and more.
Count characters with and without spaces, against the limits that matter.
Find the mean, median, mode and range of a list of numbers, with the working shown.
Sample and population standard deviation and variance, both shown, with the working.
Turn a logo into favicon.ico, the PNG sizes a site needs, and the HTML to declare them.
Check a downloaded file against its published checksum, without uploading anything.
Stamp text like DRAFT or CONFIDENTIAL across a PDF, in your browser.
See how savings grow with compounding, including regular contributions.
Shrink JPEG, PNG and WebP files with a quality slider and a live size comparison.