re: What I Learned From Bombing An Amazon Coding Assessment VIEW POST


What I learned: a love for regex. I bombed, and I knew it. So I dwelled on it, and pretty quickly realized the proper solution was regex. Looked into it a bit, flash-forward years and years, and now I'm that guy who has a one-liner for every text-based thing ever lol.

There's real value in failing.
Frankly, I'm just as happy if I win or fail.


I've always wondered why they are called "regular expressions".. when in fact, their more like "special-ability-superhuman expressions". hahaha. Jokes aside, I've often decided to learn regex properly, but then somehow I never get past the 0-9 a-b... :D

On a sidenote, if your code is riddled with regex (highly optimised and beautiful) does it not make it more difficult for less experienced devs to make changes to your code? I guess I am asking if we should weigh up using regex, versus simpler string manips?


Yeah, sometimes it just makes sense to use regex, especially when looking for patterns in text. It's easier to say "look for \([0-9]{3}\) [0-9]{3}\-?[0-9]{4}" than:

  1. look for a ( character, if you find one, check that
  2. the next character matches any of 0, 1, 2, ...
  3. the next character matches any of 0, 1, 2, ...
  4. the next character matches any of 0, 1, 2, ...
  5. the next character is a ) character...
  6. ...
  7. ...
  8. ...

I think you can always help with understanding of regex by commenting and naming, just like you would with other code items.

  # number or plus as first character, number or certain characters as other characters
  BASIC_PHONE_REGEX = "^[0-9\+(][0-9)(\-\.ext\s]+"

Yep, very good. Perhaps even add the expected result as part of the comment.

When tdd is viable, rex can be expressed very thoroughly in tests. They need to be tested differently anyway because of their versatility, so those tests go a long way to show what it should/not do is a godsend when it comes to understanding someone else's line noise.


Rex is a little like awk. Despite my love for it, I use it in code judiciously - just for the sake of who-comes-next. If the thing can be done effectively otherwise, I'll probably use the otherwise. a point. I'm not going to trade a rex for an On6 for the sake of who-comes-next lol.

For my own uses, though? Wait.. that form was misconfigured and now you have 840 contest submission emails you're manually copying/pasting to a spreadsheet?!?! Fwd those and give me 4 minutes. 🤓

:D hahaha. Seeing a good regex in action is literally like magic! Aloha-regex and BANG - magic.


+1 for regex. I still remember reading in the pragmatic programmer: "Pragmatic programmers master regular expressions."

Eventually I took a 30 day vow to do absolutely no text manipulation with anything but Regex. Now I, too can't put them down. I use regex for almost everything trxt parsing related. (everything except html, xml and JSON of course.)

code of conduct - report abuse