re正则学习

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)


  1. abc ↩︎

posted @ 2024-11-20 13:29  弈秋粟  阅读(16)  评论(0)    收藏  举报