It tells you when your pattern lies to you
\A,\zand\Zare anchors in Python, Ruby, Java and .NET, but not here[[:alpha:]]is a POSIX class elsewhere, and here an ordinary set followed by a literal bracket\p{L}without the Unicode flag matches the literal text p{L}\Q…\E, possessive quantifiers, atomic groups and Python's(?P<name>…), each explained
It never hangs, and it explains
Patterns like (a+)+ can take exponential time; here the match runs where it can be stopped, so you get an explanation and a retry button instead of a frozen app. A plain-English breakdown follows the pattern's nesting, and tapping a line selects the characters it came from.
Everything you would expect
- Matches with offsets, in alternating colours so adjacent matches never look like one
- Capture groups by number and name, including groups that did not take part
- Live replace with
$1,$&,$<name>and split - 29 tested patterns for email, URL, IPv4, UUID, JWT, semver, ISO dates and more
Take the pattern to your code
Generate ready-to-paste code for Dart, JavaScript, TypeScript, Python, Java, Kotlin, Swift, C#, Go, PHP, Ruby, Rust and grep, with the right string quoting for each. It warns when a pattern will not survive the move, such as lookaround in Go or Rust.
Questions
- Which regex flavour does it use?
- The JavaScript-style flavour used by Dart. The app flags syntax from other flavours that behaves differently here, and the code generator tells you what will not carry over to your target language.
- Why does my regex hang or time out?
- Nested quantifiers like (a+)+ can backtrack exponentially on text that does not match. The app stops the run and explains the cause instead of freezing.
- Can I test regex replace?
- Yes. Replacement is previewed live with $1, $&, named groups and the other JavaScript replacement tokens.
Free on Google Play, supported by ads. Read the Regex Tester privacy policy. Questions or a bug? Write to support@tahatec.com.