match()从开头匹配。
search()不要求从开头匹配,只会匹配第一个。
findall()匹配所有,返回列表。
sub()替换匹配到的所有子串为指定内容,并返回整个字符串。
split()切割字符串,返回列表。
demo.py(search,不要求从开头匹配,只会匹配第一个):
# coding=utf-8
import re
ret = re.search(r"\d+", "阅读次数为 9999") # match默认从开头匹配,search不要求从开头匹配
# ret = re.search(r"^\d+", "阅读次数为 9999") # 如果正则表达式中加入^表示从开头匹配,那么search与match相同。
if ret:
print(ret.group()) # 9999 自会匹配第一个 (findall匹配所有,返回列表)
else:
print("未找到")
demo.py(findall,匹配所有,返回列表):
# coding=utf-8
import re
ret = re.findall(r"\d+", "阅读次数为 9999,点赞数 666") # search只匹配第一个,findall匹配所有(返回列表)
if ret:
print(ret) # ['9999', '666'] findall匹配所有,返回列表
else:
print("未找到")
demo.py(sub替换匹配到的所有):
# coding=utf-8
import re
# sub替换 替换成固定字符串
ret = re.sub(r"\d+", "替换成的内容","阅读次数为 9999,点赞数 666") # 替换匹配到的所有,并返回整个字符串。
print(ret) # 阅读次数为 替换成的内容,点赞数 替换成的内容
# #######################################################
# sub替换 替换成函数的返回值
def add(temp):
strNum = temp.group()
num = int(strNum) + 1
return str(num)
ret = re.sub(r"\d+", add, "python = 997") # 将匹配到的内容(997)传给add函数,并将997替换成add函数的返回值。
print(ret) # python = 998
ret = re.sub(r"\d+", add, "python = 99")
print(ret) # python = 100
demo.py(split切割字符串,返回列表):
#coding=utf-8
import re
ret = re.split(r":| ","info:xiaoZhang 33 shandong") # 切割,根据冒号:或者空格切割。 返回列表
print(ret) # ['info', 'xiaoZhang', '33', 'shandong']