先看帮助文档:
Help on function sub in module re:
sub(pattern, repl, string, count=0, flags=0)
Return the string obtained by replacing the leftmost
non-overlapping occurrences of the pattern in string by the
replacement repl. repl can be either a string or a callable;
if a string, backslash escapes in it are processed. If it is
a callable, it's passed the match object and must return
a replacement string to be used.
基本意思就是从最左面替换匹配的正则表达式, 如果repl是字符串则替换成对应的字符串, 如果是可调用的, 将传一个match对象到里面, 需要返回一个string替换匹配的表达式
举下面一个例子:
# -*- coding: utf-8 -*-
import re
s = u'1990年3月27日'
def replace_digit(m):
ss = u'〇一二三四五六七八九'
index = int(m.group())
return ss[index]
result = re.sub(u'\d', replace_digit, s, count=4)
print(result)
输出结果:
一九九〇年3月27日