I want to provide alternative replacement patterns to re.sub.
Let's say i've got two search patterns as alternatives, like this:
re.sub(r"[A-Z]+|[a-z]+", replacementpattern, string)
You can pass a function to
re.sub(). In the function you can return the value needed based on the captured group. A simple code for illustration:
>>> def fun(m): ... if m: ... if m.group(1): ... return 'x' ... else: ... return 'y' >>>print re.sub(r"([A-Z]+)|([a-z]+)", fun , "ab")
fun() checks if the match succeeded and based on the captured group, returns the replacement string. If
[A-Z]+ was matched,
x is the replacement string else
[a-z]+ was matched and
y is the replacement string.
For more information : doc