Advanced Lesson 1
Regular Expressions
Chapter 5: Exercises
Writing regular expressions
Task 2: Writing regular expressions
Write regular expressions for the following languages. Test your regular expressions using re.match().
[Credits: Q1, 2 and 4 are adapted from Speech and Language Processing, Jurafsky & Martin]
Question 1
Write a regular expression for the set of all alphabetic strings.
- Valid:
cake,HeLLo WorLd,Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch, empty string - Invalid:
123,backstreet_boys,mamboNumber5
Question 2
Write a regular expression for the set of all lower case alphabetic strings ending in a "b“
- Valid:
bob,climb,door knob - Invalid:
Bob,britney spears,WANNABE
Question 3 (Upping the difficulty!)
Write a regular expression for the set of lowercase letters where there must be an "a" at every odd position in the string.
- Valid:
a,aca,aaaba,acafa,aaaaaa, empty string - Invalid:
b,baba,acda,aeaaf
Question 4 (Challenge!)
Write a regular expression for the set of all strings from the alphabet {a,b} such that each "a" is preceded by and immediately followed by a "b".
- Valid:
bab,babbab,bababababab,bbbabbbbbbabb,bbbb,bb,b, empty string - Invalid:
a,abba,bbaba,aaa
Hint: This one might be a bit tough! Like programming, break this down into smaller subproblems! Try covering the simplest case first (empty string), then add in the "b"s (without "a"s, which is valid), then include the cases with "a" while satisfying the "bab" constraint.