正则表达式相关,python的re库

import re
# #正则模块很重要

# f=open("tanghao.txt","r",encoding="utf-8")
# data=f.read()
# phone=re.findall("1[0-9]{10}",data) #用正则来查找我们要的数据,很方便
# #得到列表了['13056611687', '13056611127', '13056611687', '13236611687']
# print(phone)

#re匹配语法:
# re.match() 从头开始匹配
# re.search() 匹配包含
# re.findall() 把所有匹配到的值放到列表中返回
#
# re.split() 按什么分开 eg:re.split("\d",str)按数字分开
# re.sub() 匹配字符并替换
# re.fullmatch() 全部匹配

#eg:
# str="1sfa23d44sfkkf"
# res=re.match("[0-9]",str) #从第一个字符开始找,找不到就返回None,
# if res:
# print(res.group()) #分组就用groups()
# print(re.search("[0-9]",str)) #只要有一个就行,一个都没有返回None
# print(re.findall("[0-9]",str)) #返回符合的列表,没有返回[]空的列表

#匹配规则:
# "." 所有字符,除\n
# "^" 匹配字符开头,eg:^a
# "$" 匹配字符结尾,eg:a$
# "*" 匹配*号前的字符0次或多次,eg:a*
# "+" 匹配前一个字符一次或多次
# "?" 匹配前一个字符一次或0
# "{m}" 匹配前一个字符m
# "{n,m}" 匹配前一个字符nm
# "|" 匹配|左或|
# "(...)" 分组匹配
# "[0-9]"[a-z]"范围匹配

# "\A" 从开头匹配,同"^"
# "\Z" 从尾匹配,同"$"
# "\d" [0-9]
# "\D" 匹配非数字,与"\d"
# "\w" 匹配"a-zA-Z0-9"
# "\W" 匹配非"a-zA-Z0-9",与"\w"
# "\s" 匹配空白字符,"\t""\n""\r"


# 分组演示:
# res=re.search("([a-z]*)([0-9]*)","tanghao1234")
# print(res.groups()) #('tanghao', '1234')分开成元组了
# print(res.groups()[0])

# 高级分组演示"(?P<myname>)"
# s="abcd1233tanghao"
# res=re.search("(?P<str>[a-z]{4})(?P<num>\d{4})(?P<myname>[a-z]{7})",s)
# if res:
# print(res.groups()) # ('abcd', '1233', 'tanghao')
# print(res.groupdict()) # {'str': 'abcd', 'num': '1233', 'myname': 'tanghao'}
# print(res.groupdict()["myname"]) # tanghao

#邮箱格式:
#eg:[email protected]
# re.fullmatch("\w+@\w+\.(com|cn|edu)","[email protected]")

#规则与匹配分离,提高效率,
# aa=re.compile("规则")
# aa.fullmatch("str") #规则与匹配分离,某种地方可以提高效率


#flag标签
# re.I 忽略大小写
# re.M 多行
# re.S 特殊字符
# re.X 加注释



猜你喜欢

转载自www.cnblogs.com/yiyea/p/11441985.html
今日推荐