Skip to content

Star Wars Solution


import re

newquote = re.sub(
    pattern='\d+ death sticks', 
    repl="some death sticks", 
    string=quote
)

print(newquote)
# You wanna buy some death sticks for 8 dollars?
# You don't want to sell me some death sticks.
# How about some death sticks for 80 dollars?
# No.
# some death sticks for 2 dollars?
# Yeah I'll go for that.

Explanation

  1. \d matches a single digit
  2. \d+ matches one or more digits
  3. \d+ death sticks matches one or more digits follow by " death sticks"

re.sub(pattern, repl, string, ...) returns the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl.

newquote = re.sub(
    pattern='\d+ death sticks', # (1)!
    repl="some death sticks",   # (2)!
    string=quote
)

print(newquote)
# You wanna buy some death sticks for 8 dollars?
# You don't want to sell me some death sticks.
# How about some death sticks for 80 dollars?
# No.
# some death sticks for 2 dollars?
# Yeah I'll go for that.
  1. Look for this pattern in string.
  2. Replace matches with this.

See the problem