top | item 6462912

RegEx101.com now offers a debugger

155 points| Lindrian | 12 years ago |regex101.com | reply

30 comments

order
[+] WestCoastJustin|12 years ago|reply
http://rubular.com/ is also really great! I use it often when programming ruby regular expressions. Fill in a batch of test strings into the box, then run your regular expression against it, and instantly see (visually) what is happening. This is a BIG plus coming from perl regex 10 years ago ;) This is not a dig a perl regex, but I just remember it was a trial and error loop, where I would continually be iterating the script to see if it worked, where as with this webpage, you just iterate, more quickly.

They also have a great example:

  test string:
  Today's date is: 9/28/2013.

  regex:
  (?<month>\d{1,2})\/(?<day>\d{1,2})\/(?<year>\d{4})

  result:
  month	9
  day	28
  year	2013
Screenshot here: http://i.imgur.com/ixyHRde.png
[+] VeejayRampay|12 years ago|reply
Looking at regex101, the layout of the page looks awfully similar. It seems that the author took Rubular and made it more generic. So yeah, props to Rubular.
[+] helloTree|12 years ago|reply
What is it with the obsession with regular expressions? They are useful things, sure, but I just use them in connection with grep or if I search for strings and normally they are pretty basic, e.g.

$ grep -r -n --color "foo*bar" src

If I want to validate input data with the machine I just use a parser.

[+] ghshephard|12 years ago|reply
Regexes are an elegant and very powerful way to validate data in scripts in a concise (and if they aren't abused) easy to read fashion. There are almost infinite number of examples, but let's say I want to verify that a field is a 64 Bit hexadecimal MAC address

   $mac =~ ^[A-Fa-f0-9]{16}$
Gets the job done. How else, but a regular expression so concisely?

And, when you say, "If I want to validate input data with the machine I just use a parser." - that's pretty much what a regex engine is - a sophisticated parser, and the regular expression is the "commands" that you feed to it to parse the input text.

[+] hnriot|12 years ago|reply
I don't think your example does what you think it does, match fo followed by o zero or more times, followed by bar.

when you do understand regex, you'll be amazed at the myriad of things you can do with it.

[+] redox_|12 years ago|reply
Would be ultra-cool if you could propose a "generate a matching sample" button.
[+] Lindrian|12 years ago|reply
I have thought about this, but in cases where it would be useful, it's impossible to generate a sample match string. For example, creating a match string for /(?:a|[bc])efg?/ is super simple, but for something like: /(ab(?1)*)/ it becomes much harder. Not to mention the performance hit you would see for these more complex expressions. (These are just dummy expressions for illustrative purposes, but I'm sure you get my gist.)
[+] Jugurtha|12 years ago|reply
That's funny. Just yesterday I needed that and used pythex and a bunch of other similar 'testers' to make sure my regular expression was good. It was, but it somehow didn't work on the Mozilla Add-On Builder.

After asking a question on the #jetpack channel, members have spotted the mistake: The regex was correct, but it needed to "match the exact string" as mentioned on the doc. I've read it, but didn't understand that point. There was a missing "." at the beginning and the end. So /.regex.*/

Thanks for putting this.

[+] Lindrian|12 years ago|reply
Forgot to tell you how to use it. Simply insert an expression and some text and press the little red button right above the input for the regex. That's all you have to do! Enjoy :)
[+] hclee|12 years ago|reply
Not bad. You don't have to jump around your regexp reference and editor. It does not exactly tell you why your exp & string does not match. It just show what typed reg exp will do.
[+] mattyod|12 years ago|reply
I like it. Would be nice to be able to match against multiple test strings though.
[+] shmerl|12 years ago|reply
How do you replay the tutorial once it's finished?
[+] shocks|12 years ago|reply
Lots of great information in this thread, thanks all!