Test and debug regular expressions with real-time match highlighting
Regular expressions (regex) are sequences of characters that define search patterns. This tester helps developers validate regular expression matches with real-time text highlighting and sub-group captures.
Enter your pattern, type or paste a test string and every match is highlighted immediately with a running count. Use the global toggle to find all matches instead of only the first, and the case-insensitive toggle to ignore letter case.
It runs the JavaScript (ECMAScript) regular expression engine built into your browser. Syntax such as lookahead, named groups and lazy quantifiers works, but features from other flavors, like Python inline flags or PCRE recursion, may not, so results can differ from your language.
Without the global flag, a regex stops after the first match. Turn on Global Search (g) to highlight every match in the text. If you still see too few matches, check that the pattern is not anchored with ^ or $ and that case sensitivity is what you expect.
The pattern has a syntax problem in JavaScript, such as an unclosed bracket or parenthesis, a quantifier with nothing before it like *abc, or an unescaped special character. Escape literal characters like . ? + ( ) [ ] with a backslash.
Greedy quantifiers like .* match as much as possible, while lazy ones like .*? match as little as possible. On the text <b>one</b><b>two</b>, the pattern <b>.*</b> matches the whole string, but <b>.*?</b> matches each tag pair separately.
Put a backslash before it. A plain . matches any character, so use \. to match a real full stop. The same applies to * + ? ( ) [ ] { } | ^ $ and the backslash itself. Inside a character class such as [.] most of these are already literal.
No. Toolskyt operates under a zero-server policy. All calculations, data formatting, and file exports are executed locally on your machine.
No, this tool is 100% free. There are no limits, sign-ups, subscriptions, or hidden charges required.
Yes, absolutely. The tool executes 100% inside your local browser memory space. No inputs are sent to any servers.