在文章Python爬虫、后端,使用正则表达式,看这一篇就够了!中,我们学习了Python正则表达式模块re中的数个常用函数,且简单学习了re.sub(pattern, repl, string, count=0, flags=0) 函数的使用。
实际上,通过给该函数传入不同参数,可以实现更为高级的用法:
1. repl接受函数作为参数
实际上,对于sub函数,当repl参数为函数时:
- 该函数在pattern每匹配string成功一次时被调用;
- 该函数仅接受一个match object(关于该对象及其常用方法,请见文章Python爬虫、后端,使用正则表达式,看这一篇就够了!)作为参数;
- 该函数返回被替换后的字符串。
观察下列代码的运行情况:
import re
def add(match_obj):
if match_obj:
str_match_num = match_obj.group()
num = int(str_match_num) + 1
return str(n