Python re.sub

今天看到一例子用到了re.sub,之前没用过,学习下。

re.sub主要作用是用于匹配并替换字符串。
比如把字符串中的2改成1:

1
2
3
> import re
> re.sub(r"\d", "2", "111abc111")
222abc222

re.sub(pattern, repl, string[, count=0, flags=0])
re.sub有五个参数:
pattern:必选,正则的模式字符串。
repl:必选,替换的字符串,也可为一个函数。
string:必选,要被查找替换的原始字符串。
count:可选项,替换的次数,默认为0表示全替换。
flags:可选项,标志位,用于控制正则表达式的匹配方式。

开始的例子介绍了repl为字符串,下面例子repl为函数:

1
2
3
4
5
6
7
8
9
10
11
import re

def reFunc(match):
intStr = match.group(0)
newStr = int(intStr) + 1
return str(newStr)

result1 = re.sub(r"\d", reFunc, "111abc111", count=3)
print(result1)

结果:222abc111

match是匹配后的正则对象,如果在上面例子加上print(match),可以看到输出<_sre.SRE_Match object; span=(0, 1), match='1'>

match.group(0)是匹配到的结果,也可以让0指定匹配名,需要用到(?P…),如果以上例子要使用match.group(“num”),则正则需要改成r"(?P<num>\d)"


- - END - -


腾讯云
0%