Link
Lesson 1: An Introduction, and the ABCs
| Task | Text | 
|---|
| Match | abcdefg | 
| Match | abcde | 
| Match | abc | 
re.match('abc', text)
Lesson 1½: The 123s
| Task | Text | 
|---|
| Match | abc123xyz | 
| Match | define "123" | 
| Match | var g = 123; | 
re.match('.*123', text) 
re.match('.*\d', text) 
Lesson 2: The Dot
| Task | Text | 
|---|
| Match | abc123xyz | 
| Match | define "123" | 
| Match | var g = 123; | 
re.match('.+\.', text)
Lesson 3: Matching specific characters
| Task | Text | 
|---|
| Match | can | 
| Match | man | 
| Match | fan | 
| Skip | dan | 
| Skip | ran | 
| Skip | pan | 
re.match('[cmf]an', text)
Lesson 4: Excluding specific characters
| Task | Text | 
|---|
| Match | hog | 
| Match | dog | 
| Skip | bog | 
re.match('[^b]og', text)
Lesson 5: Character ranges
| Task | Text | 
|---|
| Match | Ana | 
| Match | Bob | 
| Match | Cpc | 
| Skip | aax | 
| Skip | bby | 
| Skip | ccz | 
re.match('[A-Z]',text)
Lesson 6: Catching some zzz's
| Task | Text | 
|---|
| Match | wazzzzzup | 
| Match | wazzzup | 
| Skip | wazup | 
- answer : 
z{2} 
- solution : 
waz{3,5}up 
re.match('.+z{2}',text)
Lesson 7: Mr. Kleene, Mr. Kleene
| Task | Text | 
|---|
| Match | aaaabcc | 
| Match | aabbbbc | 
| Match | aacc | 
| Skip | a | 
- answer : 
a{2,4}.\D*c$ 
- solution : 
aa+b*c+
or a{2,4}b{0,4}c{1,2} 
re.match('a{2,4}.\D*c$',text)
Lesson 8: Characters optional
| Task | Text | 
|---|
| Match | 1 file found? | 
| Match | 2 files found? | 
| Match | 24 files found? | 
| Skip | No files found. | 
- answer : 
\d
or \? or \d.*\?$ 
- solution : 
\d+ files? found\? 
re.match('\d.*\?$',text)
Lesson 9: All this whitespace
| Task | Text | 
|---|
| Match | 1. abc | 
| Match | 2.	abc | 
| Match | 3.           abc | 
| Skip | 4.abc | 
- answer : 
\d.\s or \d*\s 
- solution :  
\d\.\s+abc 
re.match('\d\.\s+abc',text)
Lesson 10: Starting and ending
| Task | Text | 
|---|
| Match | Mission: successful | 
| Skip | Last Mission: unsuccessful | 
| Skip | Next Mission: successful upon capture of target | 
- answer : 
^Mission.*\D 
- solution : 
^Mission: successful$ 
re.match('^Mission.*\D',text)
Lesson 11: Match groups
| Task | Text | Capture Groups | 
|---|
| Capture | file_record_transcript.pdf | file_record_transcript | 
| Capture | file_07241999.pdf | file_07241999 | 
| Skip | testfile_fake.pdf.tmp |  | 
- solution : 
^(file.+)\.pdf$ 
re.match('^(file.+)\.pdf$',text)
Lesson 12: Nested groups
| Task | Text | Capture Groups | 
|---|
| Capture | Jan 1987 | (Jan 1987) (1987) | 
| Capture | May 1969 | (May 1969) (1969) | 
| Capture | Aug 2011 | (Aug 2011) (2011) | 
- answer : 
((\D+)(\d{4})) 
- solution : 
(\w+ (\d+)) 
re.match('((\D+)(\d{4}))',text)
re.match('(\w+ (\d+))',text)
Lesson 13: More group work
| Task | Text | Capture Groups | 
|---|
| Capture | 1280x720 | 1280 720 | 
| Capture | 1920x1600 | 1920 1600 | 
| Capture | 1024x768 | 1024 768 | 
- answer : 
(\d{4})x(\d{3,4}) 
- solution : 
(\d+)x(\d+) 
re.match('(\d{4})x(\d{3,4})',text)
re.match('(\d+)x(\d+)',text)
Lesson 14: It's all conditional
| Task | Text | 
|---|
| Match | I love cats | 
| Match | I love dogs | 
| Skip | I love logs | 
| Skip | I love cogs | 
- answer : 
I love +(cats|dogs) 
re.match('I love +(cats|dogs)',text)
Lesson 15: Other special characters
Other special characters