Python re模块

1.re.sub
用re替换string中每一个匹配的子串后返回替换后的字符串。

re.sub(pattern, repl, string, count)

re.sub功能是对于一个输入的字符串,利用正则表达式,来实现字符串替换处理的功能返回处理后的字符串

re.sub共有五个参数
三个必选参数 pattern,repl,string
两个可选参数count,flags

(1)pattern,表示正则中的模式字符串
反斜杠加数字(\n)表示对应匹配的组也就是用之前匹配到的字符串补充到这个位置,例如
将“hello python,ni hao c,zai jian python”替换为PHP,代码如下替换成功

import re
inputStr="hello python,ni hao c,zai jian python"
replaceStr=re.sub(r"hello (\w+),ni hao (\w+),zai jian \1","PHP",inputStr)
print(replaceStr)

代码中的\1表示第一次匹配到的字符串也就是“python”,这样可以匹配原来的字符串,从而整个字符串替换为PHP
若改为下面这样

import re
inputStr="hello python,ni hao c,zai jian python"
replaceStr=re.sub(r"hello (\w+),ni hao (\w+),zai jian \2","PHP",inputStr)
print(replaceStr)

代码中的\2表示第二次匹配到的字符串也就是“c”,显然不能和原来的字符串匹配,所以不会替换
这里是为了说明区别\n代表的是第n次所匹配到字符串,而不是第n次用到的匹配模式

(2)repl,表示要被替换的,可以是字符串也可以是函数,
如果是字符串,则所有的反斜杠转义字符都会被处理
\n:被处理为对应的换行符
\r :被处理为回车符
不能被识别的转义字符,则只是被识别为普通的字符,例如:\j被处理为j这个字母本身
反斜杠加g以及中括号内一个名字,即\g对应命名了的组

(3)string,要处理的字符串

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章