"No, that's what comments are for, you can't expect people to be able to read your code."
Yes, you can.
Comments should be the exception, not the rule. I've written millions of lines of code over the years and only thousands of lines of comments. I'll admit that I may not write the most efficient code; but it is always extremely easy to read and flexibly designed. And people of various levels of experience can read it and either completely understand it or get the overall gist just by reading the functions names, variables, etc. I reserve comments for the truly tricky stuff.
It takes little more initial effort, ie: I never abbreviate words, I always type out the full path to a class ("System.Data.DataSet" instead of just "DataSet"), I use standard naming conventions and never take shortcuts in formatting my code. Like I said, it takes a little more initial work but it ends up reading like a novel.
Sure, comment regular expressions, but those are often difficult to read/understand just by default with no real easy way to make them readable.