import re
match 从开头开始匹配
re.match(正则表达式规则,要匹配的字符串)
result = re.match('tuling','tuling.cn')
print(result.group())
输出tuling
匹配单个字符
. 任意一个字符
res = re.match('.','M')
print(res.group())
输出M
[] 匹配列举的数据
res = re.match('[hH]ello','Hello')
print(res.group())
输出Hello
\d 匹配数字
res = re.match('\d','12312321')
print(res.group())
输出 1
\D 匹配非数字
res = re.match('\D','qwe')
print(res.group())
输出 q
\s 匹配空白
res = re.match('\s',' ')
print(res.group())
输出空白
\S 非空白
res = re.match('\S','123')
print(res.group())
# 输出1
\w 匹配非特殊字符 a-z,A-Z,0-9 - 汉字
res = re.match('\w','asdsad')
print(res.group())
#输出 a
\W 匹配特殊字符
res = re.match('\W','!')
print(res.group())
输出 !
--------------------------------------------------------------------------------
match 从头开始匹配数据 数据不多的情况下 账号 密码
re.match()
从数据中找到一个
res = re.search('\d','afsfsds122312dwda')
print(res.group())
输出 1
findall 匹配所有的数据
res = re.findall('\d','asfds1fs1212313')
print(res)
# 输出['1', '1', '2', '1', '2', '3', '1', '3']
替换数据
res = re.sub('\d','_','asfds1fs1212313')
print(res)
输出 asfds_fs_______
创建正则表达式
p = re.compile('\d')
res = p.findall('asfds12312fsasd')
print(res)
# 输出['1', '2', '3', '1', '2']
修饰符
re.S . 匹配任意字符 不包含换行
res = re.match('a.a','aaa')
print(res.group())
aaa
res = re.match('a.a','a\na',re.S)
print(res.group())
输出 a
a
------------------------------------------------------------------------
* 匹配前面一个字符 有0次出现或者无限次
为前面这个字符服务
res = re.match('a*','aaas12312dsdsdsaaa')
print(res.group())
输出 aaa
+ 匹配前面的字符出现 出现1次或者无限次
res = re.match('\d+','1111123asdasds')
print(res.group())
# 输出11111
? 出现0次,或者1次
res = re.match('https?','http')
print(res.group())
# http
{} 指定次数
匹配9位的密码可以是小写字母和数字 和下划线
res = re.match('[a-z0-9_]{9}','asdasd123fedwdfdf124')
print(res.group())
输出 asdasd123
------------------------------------------------------------------
从头匹配 ^
匹配所有以数字开头的数据 ^\d
res = re.match('^\d.*','2324asdsdwada',re.S)
print(res.group())
2324asdsdwada
结尾 $
匹配所有以数字结尾的数据
res = re.match('.*\d$','dasdsdsfsd12312')
print(res.group())
dasdsdsfsd12312
指定数据开头
匹配所有a,b,c开头的数据
res = re.match('[1].*','acsdasdsdad')
print(res.group())
acsdasdsdad
匹配所有a,b,c开头的数据
res = re.match('[^abc].*','sdasdsdad')
print(res.group())
# sdasdsdad
---------------------------------------------------------------------------
| 匹配左右两边任意一个字符 匹配ab开头的数据
res = re.match('(a|b).*','aabww123s') #basdasd
print(res.group())
# aabww123s basdasd
() 分组
匹配163,qq邮箱
res = re.match('[0-9a-zA-Z_]{4,14}@(qq|163|sina).com','123456@163.com')
print(res.group())
\num 取出分组信息
匹配标签内容 "hh"
res = re.match('<[a-zA-Z1-6]+>(.*)</[a-zA-Z1-6]+>',"hh")
print(res.group(1))
# hh
需求 "
www.tuling.cn
"res = re.match('<([a-zA-Z1-6]+)><([a-zA-Z1-6]+)>.*</\2></\1>','
www.tuling.cn
')print(res.group())
-------------------------------------------------------------
转义
print(r'\n')
匹配中文
pattern = re.match('[\u4e00-\u9fa5]+','你好')
print(pattern.group())
finall 匹配的数据 展示的是括号里面的内容 其他的都没有
aa = re.findall('(\d+)\w','asdas12312312dasd222a')
print(aa)
abc ↩︎