Test regular expressions in real-time. Fast, secure, and completely free. All processing happens in your browser — no data is sent to any server.
A Regex Tester lets you write a regular expression and immediately see which parts of a sample text it matches, highlighted inline, along with each capture group's value. Regular expressions are notoriously easy to get almost right and hard to get exactly right — a quantifier that's greedy when you meant lazy, a character class missing one edge case, an anchor that doesn't do what you assumed — and the fastest way to catch those mistakes is to test against real, varied sample input rather than mentally tracing the pattern.
Writing a regex against production data — validating an email format, extracting a value from a log line, splitting a CSV field — almost always surfaces an edge case you didn't think of on the first attempt: an email with a plus sign, a log line with an unexpected extra space, a field containing an escaped delimiter. Testing against a batch of representative examples before shipping the pattern catches those cases in seconds instead of after a bug report.
It uses the native JavaScript regex engine, so patterns and flags behave exactly as they would in a browser or Node.js. Some PCRE-specific features (like certain lookbehind variations in older engines) may behave slightly differently in other languages.
Add the global (g) flag — without it, most regex methods stop after the first match, even if the pattern could technically match again later in the string.
A greedy quantifier (like .*) matches as much text as possible before backing off, while a lazy quantifier (.*?) matches as little as possible — this distinction is a very common source of unexpected matches spanning too much or too little text.
Yes, paste multiline sample text and toggle the multiline (m) flag if you need ^ and $ to match the start/end of each line rather than only the start/end of the whole string.
No, matching runs entirely in your browser's JavaScript engine, so any sensitive sample data you're testing against stays local.