擅长:python、mysql、java
<p><code>re.sub</code>(任何匹配项的替换)的第二个参数可以是可调用的。如果是这样,则为每个匹配使用一个参数match对象调用它,并将其结果替换为字符串。所以你可以这样做:</p>
<pre><code>d = {'a': 'A', 'b': 'B'}
s = '#a #b and #c'
def replace_it(m):
return d.get(m.group('key'), m.group(0))
print re.sub('#(?P<key>[a-zA-Z]+)', replace_it, s)
</code></pre>