I’m attempting to string match 5-digit coupon codes spread throughout a HTML web page. For example, 53232
, 21032
, 40021
etc… I can handle the simpler case of any string of 5 digits with [0-9]{5}
, though this also matches 6, 7, 8… n digit numbers. Can someone please suggest how I would modify this regular expression to match only 5 digit numbers?
Advertisement
Answer
>>> import re >>> s="four digits 1234 five digits 56789 six digits 012345" >>> re.findall(r"D(d{5})D", s) ['56789']
if they can occur at the very beginning or the very end, it’s easier to pad the string than mess with special cases
>>> re.findall(r"D(d{5})D", " "+s+" ")