写这篇文章主要记录自己学习过程中的一些知识点,基本涵盖了主要功能,还加了点小案例
#统计词频
text="我是一名大学生,一名大二的学生。"
import re
data_list=re.findall('一名',text)
print(len(data_list))
匹配单个字符
import re
text='''real_url: https://****
real_url: http://****'''
data_list=re.findall("[baidu]",text) #相当于匹配b a i d u单个字符
print(data_list)
# data_list=re.findall("https.",text) #相当于匹配任意一个单个字符
# print(data_list)
贪婪匹配:有长有短我选长
# data_list=re.findall("https.+?",text) #和后面只接一个.无区别
# print(data_list)
# data_list=re.findall("https.+",text) #可以提取出第一个url 贪婪匹配
# print(data_list)
# data_list=re.findall("https\w+",text) #因为\w不能代表除了字母数字下划线以外的,所以返回none
# print(data_list)
括号分组:不改变原先匹配。但是改变提取效果,如果条件里有多个括号,按顺序返回元组,如果是大括号套着小括号,那么返回元组第一个元素是大括号匹配,第二个是小括号匹配(多用来匹配身份证)或符号:可以让你少写一个表达式,尽量简化,[abc]没办法再加单个字符以外别的固定符号,其他的情况==|,[]还可以[a-zA-Z0-9_-]这样匹配,比|匹配得更广
import re
text='''real_url: https://***
real_url: http://****'''
data_list=re.findall("https.+\s.+",text) #返回两个,不过有\nreal_url:
print(data_list)
data_list=re.findall("(https.+)\nreal_url:(.+)",text) #返回两个,说明\s不包括\n
print(data_list)
data_list=re.findall("real_url:(.+)",text) #效果同上
print(data_list)
re的其他函数一些用法split,sub,finditer,分组命名等
import re
text='''real_url: https://****
real_url: A****'''
data_list=re.findall("real_url:(.+)",text,re.ASCII) #这里最后的re.ASCII本来可以剔除中文字符,但是好像不能用???
print(data_list)
data_list=re.findall("real_url:(?P<name>.+)",text,re.ASCII)
print(data_list)
data_list=re.finditer("real_url:(?P<name>.+)",text,re.ASCII)
for item in data_list:
info_dict=item.groupdict()
print(info_dict) #但是用finditer 就可以命名成功
data_list=re.split("real_url:",text) #也可以出来两个url不过会有''\n
print(data_list)
data_list=re.sub("real_url:","链接为",text) #把real_url:改为链接为
print(data_list)