前言
什么是正则呢?既是我们可以定义一些规则,从而对字符串进行过滤。
python语言当中用re模块来操作正则,是匹配字符串的一种规则。
一、初识正则规则
1、字符类:
2、数量限定符:
3、位置限定符:
4、特殊符号
5、其他普通字符集及其替换:
二、python中操作re
python语言当中用re模块来操作正则,必须掌握方法:①findall ②search ③match
1、findall:返回所有满足匹配条件的结果,放在列表里
# 1、findall:返回所有满足匹配条件的结果,放在列表里 import re ret = re.findall('[a-z|A-Z]+', 'Java Python C C# Go') print(ret)
2、search:只要找到符合规则的第一个就直接返回
- ①需要调用group()才能拿到结果。
- ②没有找到方方方None,调用group会报错
import re ret = re.search('Q', 'Java Python C C# Go') print(ret) # 拿到的是一个对象 print(ret.group()) # 这样写匹配不到字符,会报错
一般是这样用解决会报错,if ret:
import re ret = re.search('Q', 'Java Python C C# Go') # print(ret) if ret: print(ret.group())
3、match:从前往后找到第一个就返回
- ①调用group才能拿到结果。
- ②没有找到方方方None,调用group会报错。
import re ret = re.match('Ja', 'Java Python C C# Go') if ret: print(ret.group())
4、split:切割字符串
import re ret = re.split('[Ja]', 'Java Python C C# Go') # 先按J分割,得到['', ava Python C C# Go],再按a分割,得到['', '', 'v', ' Python C C# Go'] print(ret)
5、sub、subn:替换
import re # 将字符串的数字替换成空字符,得到:ABCD ret = re.sub('\d', '', 'A1B2C3D', 3) # 参数3表示只替换3个 print(ret) ret = re.subn('\d', '', 'A1B2C3D') # 返回元组(替换的结果,替换了多少次) print(ret)
6、compile:将正则表达式编译成为一个对象,需写入匹配规则
# 6、compile:将正则表达式编译成为一个对象,需写入匹配规则 import re comp = re.compile('gs(.+?)l') ret = comp.findall('gs963lol') print(ret)
7、finditer:拿到的是一个迭代器,也需group才能拿到值
import re ret = re.finditer('\d', 'asd46sad78asd6564') print(ret) print(next(ret).group()) # 查看第一个值 print(next(ret).group()) # 查看第二个值 print([i.group() for i in ret]) # 查看剩下所有值
欢迎来大家QQ交流群一起学习:482713805
来源:https://www.cnblogs.com/gsxl/p/12398114.html