Can a regular expression match whitespace or the start of a string?
I’m trying to replace currency the abbreviation GBP with a £ symbol. I could just match anything starting GBP, but I’d like to be a bit more conservative, and look for certain delimiters around it.
>>> import re >>> text = u'GBP 5 Off when you spend GBP75.00' >>> re.sub(ur'GBP([\W\d])', ur'£\g<1>', text) # matches GBP with any prefix u'\xa3 5 Off when you spend \xa375.00' >>> re.sub(ur'^GBP([\W\d])', ur'£\g<1>', text) # matches at start only u'\xa3 5 Off when you spend GBP75.00' >>> re.sub(ur'(\W)GBP([\W\d])', ur'\g<1>£\g<2>', text) # matches whitespace prefix only u'GBP 5 Off when you spend \xa375.00'
Can I do both of the latter examples at the same time?
Use the OR ‘
|‘ operator: