Practice Makes Regexp — complete package by Reuven M. Lerner

Practice Makes Regexp — complete package

Don't fiddle with regexps. Use them effectively.


Have you ever known a developer who needed to use a regexp to solve a crucial, time-boxed problem, at work? They know that you can get it…if they just add parentheses here. Or a plus sign there. Or a question mark at the end. Or something.

They spend hours fiddling—trying to figure out the proper syntax and searching online and plugging in snippets that may or may not work.

It’s a tedious and time consuming system, and even worse, guarantees that their regexp won’t quite do what they want. No wonder so many people give up before they master regular expressions!

Stop fiddling, and get back to coding

Some developers try to learn regexps via books and websites. But most of those resources just throw some syntax at you, and tell you that you’ll be set. I know from experience that this system doesn’t work (both from when I started to program, to more than a decade of teaching regexps at major high-tech companies around the world). Just as reading a single grammar book won’t teach students a foreign language, developers can’t learn regular expressions from memorizing the syntax alone.

So, how do developers master regexps? They treat it as a language—and then practice, practice, practice.

Once you do practice them, you start to internalize their structure and power. And then you start to see more and more places in which regexps can solve problems, more quickly than you ever imagined.

You can get your own work done faster because you have the right tools to attack the problem, and you line yourself up for good things, like promotions and tackling that side project application you always dreamed of creating.

Get your coding time back

Practice Makes Regexp doesn’t aim to teach developers regular expressions.There are other books and resources for that.

Rather, this course aims to take a fledgling knowledge of regexps, and make regexps fluent and natural! 

Here’s what you get:
  • 50 regexp exercises, solutions, and explanations
  • all in a 175 page ebook
  • With solutions for Python, Ruby, JavaScript, and PostgreSQL

In this version, you'll also get a video explanation, by me, reviewing each of the 50 exercises.  I walk you through the process

Each exercise in Practice Makes Regexp has solutions in Python, Ruby, JavaScript, and PostgreSQL (except for the chapter on the Unix shell, in which solutions are presented for the “grep” command).  No matter which of these languages you use, this course will help you to do your work faster and better, working fluidly with text and extracting precisely what you need. If you have been struggling to use regular expressions in your work, then I believe Practice Makes Regexp is the course that you’ve been waiting for.

Not sure if the book is for you? Or do you need a refresher course in regular expressions?  You can sign up for my "regular expressions crash course," at .

What's included?

Video Icon 43 videos File Icon 6 files


2.39 MB
2.23 MB
2.9 MB
Chapter 4 — Simple regexps
4.1: Find matches (fixed)
16 mins
4.3: Double f
4 mins
4.2: Five-letter words
8 mins
4.4: Extract timestamp
10 mins
Chapter 5 — Character classes
5.4: IP addresses
7 mins
5.5: Long, weird words (fixed)
8 mins
5.6: Matching URLs
11 mins
5.7: Non-zero hours
6 mins
5.3: Hexwords
6 mins
5.1: End-of-sentence words
9 mins
5.8: Quoted text
10 mins
5.2: Hex numbers
6 mins
5.9: Supervocalic
7 mins
5.10: Double triple vowel
6 mins
Chapter 6 — Alternation
6.1: Multiple date formats
9 mins
6.2: "oo" and "ee" words
7 mins
6.3: British and US spelling
6 mins
Chapter 7 — Anchoring
7.2: Comment lines
5 mins
7.1: Capitalized start of line
5 mins
7.3: Last five letters
5 mins
7.5: Last two words
7 mins
Chapter 8 — Groups
8.2: Config pairs
7 mins
8.1: Date and time
13 mins
8.4: Prices
10 mins
8.3: Postfix dollar
7 mins
8.5: First word from quotes
13 mins
8.7: "t" but no "ing"
5 mins
8.6: Question first word
7 mins
8.9: Beheaded usernames
6 mins
8.8: Usernames and user IDs
11 mins
8.10: Final words
9 mins
8.11: "d" user shells
5 mins
Chapter 9 — Flags
9.1: All usernames
12 mins
ex34 - a b c stretches in Alice.mp4
9 mins
ex36 - a b c extended.mp4
7 mins
ex35 - a b c stretches, case insensitive.mp4
5 mins
ex37 - ip addresses from a logfile.mp4
9 mins
Chapter 10 — Backreferences
10.1: Doubled vowels
7 mins
Chapter 11 — Replace
5 mins
Chapter 12 — grep
4 mins
12.2 - All but today.mp4
3 mins
12.3 Problem logs.mp4
3 mins
12.4 Old and new Office files.mp4
3 mins
Slide PDFs
606 KB
Solutions to exercises
58.7 KB
Data files
2.88 MB

Become a better developer.

I'm Reuven — and for 20 years, I've spent just about every day teaching Python, data science, and Git at some of the world's best-known companies. 

I've recorded my most popular courses here, for you to learn these skills — even if you don't work for a big company.

After taking my courses, you'll be able to to solve bigger problems in less time — allowing you to do your current job better, or to find a new, better job.


What do the videos give me that's not in the book?

First of all, many people prefer to see things demonstrated, rather than just on paper. Think of the difference between reading a book and watching a lecture; both give you information, but the video can be livelier.

Second, I strongly believe that the answer isn't the most important part of what I provide with these exercises.  Rather, the process of getting to an answer is the important thing.  As such, you can more easily see the process in a video than on paper.  That's why the video shows me solving each exercise, step by step, in Python, Ruby, JavaScript, and PostgreSQL — so that you can see how to do the same on your own computer.

Finally, in many cases I took advantage of the opportunity in the video to explore alternative answers and/or interesting things that we can do in and with regexps.  So you will often get a fuller, more interesting answer.

What if I dislike the course?

If you don't think you're getting value from Practice Makes Regexp, then ask for a refund, and I'll give you one.