正则表达式相关,python的re库
Posted yiyea
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关,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" 匹配前一个字符n到m次
# "|" 匹配|左或|右
# "(...)" 分组匹配
# "[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>\d4)(?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:yiyea@126.com
# re.fullmatch("\w+@\w+\.(com|cn|edu)","yiyea@126.com")
#规则与匹配分离,提高效率,
# aa=re.compile("规则")
# aa.fullmatch("str") #规则与匹配分离,某种地方可以提高效率
#flag标签
# re.I 忽略大小写
# re.M 多行
# re.S 特殊字符
# re.X 加注释
以上是关于正则表达式相关,python的re库的主要内容,如果未能解决你的问题,请参考以下文章