使用re.sub来进行复杂的字符串替换时,只能将某一个或某几个字符替换称一样的字符串例如
1 | import re |
1 | UPPER snake, lower snake, Mixed snake |
可以看到,替换的字符串并没有按照以前的大小写顺序来进行替换,都被统一替换成了snake,如果需要按照以前的大小写的顺序来替换的话,就需要使用到替换回掉函数,如
1 | import re |
函数replace是我们的替换回调函数,输入的参数是一个匹配对象,由match()或find()返回,我们可以从debug中看出其工作流程

它会将匹配的对象依次去进行大小写的对比,然后再进行替换并返回正确的替换结果.