Regex Tester: Because Regular Expressions Are Beautiful and Terrible
Every developer has a complicated relationship with regex. I built the tester I always wanted — one that explains what your pattern is actually doing.
Regular expressions are one of those technologies that feel like a superpower when they work and a punishment when they don't. A working regex is elegant — 30 characters that match exactly what you need from a million possibilities. A broken regex is cryptic — you change one character and suddenly nothing matches, or worse, everything matches.
Most regex testers show you matches. Mine shows you matches, but it also breaks down each part of your pattern and explains what it's doing. Hovering over `(?:...)` tells you "non-capturing group." Hovering over `\b` tells you "word boundary — matches between a word character and a non-word character." Hovering over `{3,}` tells you "3 or more of the preceding element."
This "explain mode" took longer to build than the testing functionality. I had to write a regex parser that produces a human-readable explanation tree — essentially a regex that reads regex and produces English. Appropriately recursive.
The feature people use most: the test string generator. You describe what you're trying to match, and it generates sample strings — both ones that should match and ones that shouldn't — so you can test your pattern against realistic inputs. I got the idea from test-driven development. Write your test cases first, then write your code. Same principle applies to regex.