Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at cf.Objective() 2013 (Bloomington, MN) with: Ben Koshy

I Won Steven Levithan's Regular Expression Contest!

By Ben Nadel on
Tags: ColdFusion

I know this is way late (still trying to catch up on my backlog of to-do items post-CFUNITED), but I am pretty exciting about winning Steven Levithan's Regular Expression contest. I submitted an XML document parser that parses the given XML file using a file input stream rather than an entire file read. It was meant to act in the same way that the SAX XML parser works (as an experiment, not as a replacement).

Thanks to Steven Levithan for putting on the contest and for being as big a proponent of regular expressions as I am!




Reader Comments

Nice job, Ben!

For those of you who aren't aware of it, I was the inadvertent inspiration for Ben being the Master of Regexes that he is. You see...

One day I was "concentrating" on a hard problem -- the kind of hard problem that entire think tanks work on. You know: really hard.

Anyway, while I was deep in thought, I may have inadvertently slumped over onto my keyboard. Certainly, when Ben came in the room, this was the impression he must have had.

"Are you all right, Hal?" Ben asked.

"Hmm...What...Where am...Oh, Ben. Um, yes, of course. I was just working out the algorithm I'll need for this project." I then got up to splash my face with cold water and get some coffee. When I came back, Ben was staring at my screen.

"What is it, Ben?" I asked.

"It looks like you fell asleep. There's a bunch of random letters and characters on the screen," he said.

"Why, err...nonsense! Don't you know a regex when you see one?"

That began Ben's journey into regex mastery. The rest is history.

Oh, and the strange characters that started this off? Once Ben translated it, it turned out to be a remarkably clever proof of an algorithm for which I was nominated for a Nobel Prize in Programming.

But enough about me. Congrats, Ben.

Reply to this Comment

I would not have believed it if I were not there :) Had Hal's face not gotten all friendly with that keyboard, I dare not think where I would be today.

Reply to this Comment

its just amazing how tings work out out sometime, congrats Ben for your award any chance you plan on adding to the XML parsar ceated?

Reply to this Comment

Props on owning that c-test.

While we're on the subject, for the developers that have perpetually re-queued "Learn regular expressions" to the bottom of their study queue, where would you recommend we start to become as expert and REGEX savvy as possible with as little an investment of time as possible (ideally about 3-4 minutes total) ?

Where did you start? What helped you the most (besides being a genius)?
Thanks!

Reply to this Comment

@David,

Here is a post that has a great tutorial:

http://www.bennadel.com/index.cfm?dax=blog:507.view

.. and here is a tutorial that I wrote for my developers when I was at Nylon Technology:

http://www.bennadel.com/index.cfm?dax=blog:458.view

Just start out with simple ones and go from there. And the key that I always try to get across to people - don't worry about reading regular expression; they are very hard to read. Just worry about writing them.

Good luck!

Reply to this Comment

Hi,

Do you know of any tools/code that will read through a set of values and generate regular expressions? Thanks for any info.

I need some way to automatically score consistency across a set of database field values.

BH

Reply to this Comment

@Brian,

Can you explain a little bit more about what you mean? I am not sure that I fully understand what you are trying to do?

Reply to this Comment

Post A Comment

You — Get Out Of My Dreams, Get Into My Comments
Live in the Now
Oops!
Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.