常用的正则表达式函数
re.match()函数、re.search()函数、全局匹配函数、re.sub()函数
一、re.match()函数
从源字符串的起始位置匹配一个模式
格式re.match(pattern, string, flag)
第一个参数代表对应的正则表达式,第二个参数代表对应的源字符,第三个参数是可选参数,代表对应的标志位,可以放模式修正符等信息
import re
string = "apythonhellomypythonhispythonourpythonend"
pattern = ".python."
result = re.match(pattern, string)
result1 = re.match(pattern, string).span()
print("结果1:%s" % result) # 结果1:<_sre.SRE_Match object; span=(0, 8), match='apythonh'>
print(result1) # (0,8)
二、re.search()函数
扫描整个字符串进行匹配
格式re.search(pattern, string, flag)
import re
string = "hellomypythonhis"
pattern = ".python."
result = re.match(pattern, string)
result1 = re.search(pattern, string)
print("结果1:%s" % result) # 结果1:None
print("结果2:%s" % result1) # 结果2:<_sre.SRE_Match object; span=(0, 8), match='ypythonh'>
三、全局匹配函数
将符合模式的全部内容都匹配出来
思路
(1)使用re.compile()对正则表达式进行预编译
(2)编译后使用findall()根据正则表达式从原字符串中将匹配的解决全部找出。
import re
string = "hellomypythonhispythonourpythonend"
pattern = re.compile(".python.") # 预编译
result = pattern.findall(string) # 找出符合模式的所有结果
print("全局匹配结果:%s" % result) # 全局匹配结果:['ypythonh', 'spythono', 'rpythone']
整合
import re
string = "hellomypythonhispythonourpythonend"
pattern = ".python."
result = re.compile(pattern).findall(string)
print("全局匹配结果:%s" % result) # 全局匹配结果:['ypythonh', 'spythono', 'rpythone']
四、re.sub()函数
根据正则表达式来实现替换某些字符串
re.sub(pattern, rep, string, max)
第一个参数对应的正则表达式,第二个参数为要替换成的字符串,第三个参数为源字符串,第四个参数为可选项,代表最多替换的次数,如果忽略不写,则会将符合模式的结果全部替换。
import re
string = "hellomypythonhispythonourpythonend"
pattern = "python."
result1 = re.sub(pattern, "php", string) # 全部替换
result2 = re.sub(pattern, "php", string, 2) # 最多替换2次
print("结果1:%s" % result1) # 结果1:hellomyphpisphpurphpnd
print("结果2:%s" % result2) # 结果2:hellomyphpisphpurpythonend