传递一个函数作为repl
参数。将MatchObject
传递给此函数,并.group(1)
给出第一个带括号的子组:
import re
s = 'start TT end'
callback = lambda pat: pat.group(1).lower()
re.sub(r'([A-Z]){2}', callback, s)
是的,您应该使用([A-Z])\1
而不是([A-Z]){2}
为了 _不_匹配,例如AZ
。
import re
s = 'start TT end'
re.sub(r'([A-Z])\1', lambda pat: pat.group(1).lower(), s) # Inline
给出:
'start t end'