擅长:python、mysql、java
<p>更改为使用callable作为替换参数:</p>
<pre><code>import re
def tolower(text):
patterns = {
"\[(.*?)\]": lambda m: '[{}-123]'.format(m.group(1).lower())
}
for key in patterns:
text = re.sub(key, patterns[key], text)
return text
print(tolower("[IMG]UPPER[/IMG]"))
# [img-123]UPPER[/img-123]
</code></pre>