1.match使用的俩种风格
#第一种风格
import re
'''
print(re.match("abc","abc")) #匹配,左边第一个开始算起来
print(re.match("abcx","abc"))#匹配不成功None,匹配成功返回位置等详细信息
print(re.match("abc","abcx"))
#match严格匹配,从第一个开始,"abc","abcdefg"出现一次
matchobj=re.match("abc","abcdefg")
print(matchobj)
print(type(matchobj))
print(matchobj.group(0)) #挖掘的第一个匹配的
'''
line = "txm is a boy not a girl"
matchobj=re.match(r"(.*) is (.*) not (.*)",line) #.代表任意字符不包含换行,*代表一个或多个
print(matchobj) #详细的匹配
print(matchobj.group(0))
print(matchobj.group(1))
print(matchobj.group(2))
print(matchobj.group(3))
#第二种风格
import re
#re 预编译
pat=re.compile("(.*)----(.*)") #预编译起到加速作用
line="84151351----511231"
matchchobj=pat.match(line)
print(matchchobj.group(0))
print(matchchobj.group(1))
print(matchchobj.group(2))
2.搜索
import re
'''
print(re.match("abc","abc xyz"))
print(re.match("xyz","abc xyz")) #匹配从第一个开始
print(re.search("abc","abc xyz")) #搜索包含就可以
print(re.search("xyz","abc xyz"))
'''
searchobj=re.search(r"(.*)-is-(.*)","abc xyz-is-go")
print(searchobj)
print(searchobj.group())
print(searchobj.group(1))
print(searchobj.group(2))
3.findall(important!!!)
import re
QQstr="""
ぷ恆分離線
★群主☆瑾爷
937226695 男 12年 2012年5月以前 潜水(0) 2019/04/08
2
Ailee
★之音☆♀小琦
1435967048 女 10年 2012年5月以前 潜水(0) 2016/09/25
3
十四。
★之音☆秋燕
517791799 女 12年 2013/06/16 潜水(0) 2016/04/30
4
☆念想☆
1374801362 男 6年 2016/04/30 冒泡(2) 2021/01/13
5
梦想
★之音☆玲儿
250748705 女 11年 2012年5月以前 潜水(0) 2016/10/21
6
心碎孤独。。。。。
★动漫☆XX
517131366 男 12年 2012年5月以前 潜水(0) 2012/09/13
7
木子李
★之音☆林月
610981205 女 13年 2012年5月以前 潜水(0) -
"""
searchobj=re.findall("[1-9]\\d{4,10}",QQstr)
print(searchobj)
4.邮箱提取:
import re
EmailList="""
txm0 # 13341612369 # [email protected]
txm1 # 13325623123 # [email protected]
txm2 # 13342452316 # [email protected]
txm3 # 13345426844 # [email protected]
txm0 # 13345216561 # [email protected]
txm1 # 13834562313 # [email protected]
txm2 # 13394565666 # [email protected]
txm3 # 13934563223 # [email protected]
txm4 # 13234561544 # [email protected]
txm5 # 13323456322 # [email protected]
txm6 # 13342154456 # [email protected]
txm7 # 13341563311 # [email protected]
txm5 # 13103458416 # [email protected]
txm4 # 13301456562 # [email protected]
txm4 # 13345426512 # [email protected]
txm1 # 13346984815 # [email protected]
"""
#按照套路写
searchobj1=re.findall("1[34578]\\d{9}",EmailList) #手机号
print(searchobj1)
regexmail=re.compile("([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4})",re.IGNORECASE)#表达式复杂时必须预编译
maillist=regexmail.findall(EmailList)#邮箱
print(maillist)
5.spilt切割
'''
line="51512----23123123123x10" #字符串切割
linelist=line.split("----")
print(linelist)
'''
import re
line1="213 1 nan 20 177 本科 未婚 电子"
mylist1=re.split("\\s+",line1) #空白字符
print(mylist1)
line2="a,b c;d"
mylist2=re.split(r"[\s\,\;]",line2) #三个符号选一个进行切割
print(mylist2)
6.filter筛选与屏蔽
import re
for data in re.finditer("\\d+","232-326*56515a"): #筛选检索
print(data.group())
print("------")
for data in re.finditer("[a-zA-Z]+","232-326*56515a"): #筛选检索
print(data.group())
print("------")
for data in re.finditer("[法轮功]","法轮功djaishda法轮功dniasid法令"): #屏蔽
print(data.group())
print("------")
for data in re.finditer("[^法轮功]","法轮功djaishda法轮功dniasid法令"): #屏蔽
print(data.group())
7.拦截与替换
import re
safest ="全能神 全能神"
safeststr=re.subn("全能神","社会主义接班人",safest) #删除则替换为空""
print(safeststr) #将相关内容替换
print(safeststr[0])
print(safeststr[1])
print("-----")
safest1 ="2134 53453 24532 434231"
safeststr=re.subn("\\d+","社会主义",safest1) #灵活运用
print(safeststr) #将相关内容替换
print(safeststr[0])
print(safeststr[1])
print("-----")
safest1 ="2134 53453 24532 434231"
safeststr=re.sub("\\d+","社会主义",safest1) #sub没有次数统计
print(safeststr) #将相关内容替换