正则

178 阅读2分钟

正则

re模块

re模块的findall方法

在字符串中找到正则表达式所匹配的所有字符串,并返回一个列表,如果没有匹配到就会返回一个空列表。

import re
a='张三天天在玩4399小游戏,他玩得很开心!'
b=re.findall('张三',a)
print(b)

运行结果如下:

['张三']

re模块的match方法

re.match 尝试从字符串的起始位置匹配一个模式,匹配成功返回的是一个匹配 对象(这个对象包含了我们匹配的信息),如果不是起始位置匹配成功的话, match()返回的是空。

import re
a = "python123123java"
print(re.match('python',a))
print(re.match('python',a).group())#查看匹配的字符
print(re.match('123',a))# 因为不是起始 返回为None
print(re.match('python',a).span())# 匹配字符的下标取值区间

运行结果如下:

<re.Match object; span=(0, 6), match='python'> python None (0, 6)

re模块的search方法

re.search扫描整个字符串,匹配成功返回的是一个匹配对象(这个对象包含了我们匹配的信息) 注意:search也只能匹配到一个,找到符合规则的就返回,不会一直往后找

import re
a = "python123123java"
print(re.search('123', a))
print(re.search('cc', a))
print(re.search('python', a).group())
print(re.search('python', a).span())

运行结果如下:

<re.Match object; span=(6, 9), match='123'> None python (0, 6)

re模块三个方法的区别

一、findall:匹配目标字符串 匹配完成返回的是值 二、match:从目标字符串开始位置进行匹配,匹配成功返回的是匹配对象 只能匹配一/ 三、search:匹配目标字符串,匹配成功返回的是匹配对象只能匹配一个

元字符

单字匹配符

image.png

代表数量的元字符

image.png

代表边界的元字符

^ 匹配字符串开头

$ 匹配字符串结尾