概念
正则表达式是一种字符串匹配的模式
作用
- 检查一个字符串是否含有某种字串
- 替换匹配的子串
- 提取某个字符串中匹配的子串
正则表达式常用语法
- . 匹配除了换行符(\n)以外的所有字符
- \d 匹配[0-9]的数字
- \w 匹配字母数字_和中文
- *前面的一个匹配模式出现0次或者多次
- +前面的一个匹配模式出现1次或者多次
- ?前面的一个匹配模式出现0次或者1次
# 导入正则模块
import re
#字符匹配
rs1=re.findall('abc','abcggjgygabc')
rs2=re.findall('a.c','a\nc')
rs3=re.findall('a.c','abc')
rs4=re.findall('a\.c','a.c')
rs5=re.findall('a[bc]d','abd')
print(rs1)
print(rs2)
print(rs3)
print(rs4)
print(rs5)
#预定义的字符集
rs6=re.findall('\d','123')
rs7=re.findall('\w','Az758_你好')
print(rs6)
print(rs7)
#数量词
rs8=re.findall('a\d*','a123')
print(rs8)
rs9=re.findall('a\d+','a1')
print(rs9)
rs10=re.findall('a\d?','a123')
print(rs10)
rs11=re.findall('a\d{2]','a123')
print(rs11)
re.findall()方法
- re.findall(pattern,string,flags=0)
- 作用:扫描整个string字符串,返回所有与pattern匹配的列表
- 参数
- pattern:正则表达式
- string:从那个字符串中查找
- flags:匹配模式
- 返回:返回string中与pattern匹配的结果列表
- 特点:
1. 如果正则表达式中没有()则返回与整个正则匹配的列表
2. 如果有(),则返回()中匹配的内容列表,小括号两边都是负责确定提取的数据所在位置
正则中r原串的使用
- r原串可以消除转义符带来的影响
- 可以解决写正则的时候,不符合PEP8规范的问题
import re
# 不使用r原串
rs1=re.findall('a\nbc','a\nbc')
print(rs1)
rs2=re.findall('a\\nbc','a\\nbc')
print(rs2)
rs3=re.findall('a\\\nbc','a\\nbc')
print(rs3)
rs4=re.findall('a\\\\nbc','a\\nbc')
print(rs4)
#r原串可以消除转义符带来的影响
rs5=re.findall(r'a\\nbc','a\\nbc')
print(rs5)