re.sub and variables

MRAB python at mrabarnett.plus.com
Fri Aug 13 04:20:30 CEST 2010


Steven D'Aprano wrote:
> On Thu, 12 Aug 2010 14:33:28 -0700, fuglyducky wrote:
> 
>> if anyone happens to know about
>> passing a variable into a regex that would be great.
> 
> The same way you pass anything into any string.
> 
> Regexes are ordinary strings. If you want to construct a string from a 
> variable t = "orl", you can do any of these:
> 
> "Hello w" + t + "d"
> 
> "".join(["Hello", " ", "w", t, "d"])
> 
> "Hello w%sd" % t
> 
> "Hello %s" % ("w" + t + "d")
> 
> "Hello w%(var)sd" % {"var": t}
> 
> "Hello wSPAMd".replace("SPAM", t)
> 
> or many other variations. Constructing a regex is no different.
> 
You just need to remember that if you pass a string into re.sub as a
replacement then it'll be treated as a template. It's all in the
documentation! :-)



More information about the Python-list mailing list