Regex Tester

Test regular expressions with live matching and highlighting

//
Flags:g (global), i (case-insensitive), m (multiline), s (dotAll)
Enter text to test against the regex...
Loading editor...

Regular Expression Tester — Test & Debug Regex Patterns Online

Understanding the Basics

Regular expressions (regex or regexp) are a formal language for describing string patterns, first introduced by mathematician Stephen Kleene in the 1950s and subsequently incorporated into virtually every programming language and text-processing tool. A regex pattern is a sequence of characters where some have literal meaning (the character a matches only "a") and others are metacharacters with special pattern-matching semantics: the dot (.) matches any character, the asterisk (*) means "zero or more of the preceding element", the plus (+) means "one or more", the question mark (?) means "zero or one", and character classes like [a-z] match any lowercase letter. Grouping with parentheses creates capturing groups — subpatterns whose matched text is extracted separately from the full match. Alternation with | allows matching one of several alternatives. Anchors like ^ (start of string) and $ (end of string) constrain where matches can occur. Lookaheads (?=...) and lookbehinds (?<=...) assert context without including it in the match. Regex is used for input validation (email, phone, URL formats), text extraction from logs and documents, find-and-replace in editors and build tools, URL routing in web frameworks, and data parsing in ETL pipelines. Our tester uses JavaScript's native RegExp engine with real-time evaluation and group capture display.

How to Use the Tool

  1. Enter your regular expression pattern in the Pattern field (without surrounding slashes).
  2. Select regex flags: g (global — find all matches, not just first), i (case-insensitive), m (multiline — ^ and $ match line boundaries), and s (dotAll — dot matches newlines).
  3. Paste your test string into the text editor below.
  4. All matches are highlighted directly in the text and listed in the Matches panel with their index offsets and captured groups.
  5. Adjust the pattern and see matches update in real time as you type.

Key Features & Specifications

  • Real-time regex evaluation with millisecond latency as you type the pattern
  • All matches highlighted visually in the test text with distinct colors
  • Capture group display: each group's matched text is shown alongside the full match
  • Named capture groups (?<name>...) are shown with their names in the results panel
  • Flag toggles for g, i, m, s, u, and y modes

Frequently Asked Questions (FAQ)

Q:What regex engine does this tool use?
The tool uses JavaScript's native ECMAScript RegExp engine. This covers almost all standard regex features, but differs from PCRE (used in PHP, Ruby, and Python's re module) in a few areas: JavaScript does not support lookbehind in older engines, recursive patterns, or POSIX character classes. Patterns must be valid ECMAScript regex syntax.
Q:Why is my pattern matching more than I expect?
Without anchors, a pattern can match anywhere in the string. Add ^ to require the match to start at the beginning and $ to require it to end at the string's end. Without the g flag, only the first match is returned even if many exist.
Q:What is a capture group and how do I use it?
Parentheses create a capturing group: the text matched by the sub-pattern inside them is captured and accessible separately. For example, (\d{4})-(\d{2})-(\d{2}) applied to "2024-06-20" captures three groups: "2024", "06", and "20". Named groups use (?<name>...) syntax.
Q:How do I match a literal dot, asterisk, or plus sign?
Metacharacters must be escaped with a backslash to match literally. To match a literal dot, use \. To match a literal asterisk, use \*. To match a backslash itself, use \\.