前言
学习re模块首先要对python正则表达式要了解,正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。re 模块使 Python 语言拥有全部的正则表达式功能。关于正则的具体内容我就不讲了,网上有很多,大家可以先去学一学。
re模块
学本文主要讲一下re模块下的三种函数和使用方法。
1.search函数
re.search 扫描整个字符串并返回第一个成功的匹配。
语法:
参数含义:
pattern 匹配的正则表达式
string 要匹配的字符串。
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
实例:
import re
str="10qzs20qzs30"
data=re.search("\d+",str)
print(data.group())
输出结果:
注意:search返回的是正则表达式对象,.group()方法来获取返回的字符串。
2.Sub()函数
Python 的re模块提供了re.sub用于替换字符串中的匹配项。
语法:
参数函数:
pattern : 正则中的模式字符串。
repl : 替换的字符串,也可为一个函数。
string : 要被查找替换的原始字符串。
count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
实例:
比如还是上面的str字符串,去掉“qzs”字符,只剩下数字:
import re
str="10qzs20qzs30"
data=re.sub("\D","",str)
print(data)
运行结果:
3.findall()函数
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
语法:
参数含义:
string 待匹配的字符串。
pos 可选参数,指定字符串的起始位置,默认为 0。
endpos 可选参数,指定字符串的结束位置,默认为字符串的长度。
实例:
根据函数名也知道了,此函数是匹配所有,而不是像search函数匹配一次
importre
str="10qzs20qzs30"
data=re.findall("\d+",str)
print(data)
运行结果:
re模块还有一些其他的函数我就不一一列出了,大家可以自己试一试。本文主要就是让大家对re模块有所认识。
re模块的修饰符
正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR() 它们来指定。如 re.I re.M 被设置成 I 和 M 标志:
文章部分定义来源于菜鸟教程及网络
领取专属 10元无门槛券
私享最新 技术干货