python正则表达式
re模块
re.match从字符串的起始位置匹配一个规则,匹配成功就返回match对象,否则返回None,使用group()获取匹配成功的字符串
语法:re.match(pattern,string,flags=0)
参数说明:
pattern:匹配的正则表达式
string:要匹配的字符串
flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等.flag可选标志位
re.I:使匹配对大小写不敏感
re.L:做本地化识别匹配
re.M:多行匹配,影响^和$
re.S:使.匹配包括换行在内的所有字符
match只能匹配以‘xxx’开头.
使用group(num)或groups()匹配对象函数来获取匹配表达式
常用的匹配规则-匹配字符
.匹配除了换行符以外的任意一个字符
[abc]匹配中括号中集合的任意一个字符,a或b或c
扩大选择范围[a-z]即可匹配任意一个小写英文字母同理[A-Z]匹配任意一个大写英文字母
\d匹配一个数字,即0-9
\s匹配一个空白字符或tab键,\S匹配一个非空白字符
\w匹配单词字符,即a-z,A-Z,0-9,\W匹配一个非单词字符,比如_,空格
常用的匹配规则-匹配字符数量
*匹配前一个字符出现0次或者无限次,即可有可无
+匹配前一个字符出现一次或无限次,即至少一次
比如使用一个表达式检验字符串是否符合Python变量命名标准(不能以数字开头,只能包含数字字母下划线)
?匹配前导字符出现0次或1次
{m}精确匹配前一个字符出现m次
{m,}匹配前一个字符至少出现m次
{min,max}匹配前导字符出现从min到max次,min和max都是非负整数
验证163邮箱正则表达式demo
常用的匹配规则-原生字符串
\,用\\来输出\
r'xxx'表示原样输出,不进行转意
^匹配字符串开头
$匹配字符串结尾
正则表达式匹配邮箱以m结尾常用的匹配规则-分组匹配
|:匹配左右任意一个表达式,从左至右
(ab)将括号中字符作为一个分组
\num引用分组num匹配到的字符串
(?p)分组起别名
(?P=name)引用别名为name分组匹配到的字符串
re.compile方法
compile将正则表达式模式编译成为一个正则表达式对象
reg = re.compile(pattern)
result = reg.match(string)
等效于result = re.match(pattern,string)
使用re.compile()和保存所产生的正则表达式对象重用效率更高
re.search方法
search在全文中匹配一次,匹配到就返回
语法:re.search(pattern,string,flags=0)
函数参数说明:
pattern:匹配的正则表达式
string:要匹配的字符串
flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等
re.findall()查询字符串中某个正则表达式全部的非重复出现的情况,返回的是一个结果列表
re.sub 将匹配到的数据进行替换
语法:sub(pattern,repl,string,count=0,flags=0)
参数说明:
pattern:正则中的模式字符串
repl:替换的字符串,也可以是一个函数
string:被查找的原始字符串
flags:标志位,用于控制正则表达式的匹配方式
re.subn 实现目标的搜索和替换,返回被替换的数量,以元组的形式
re.split 根据匹配进行切割字符串,并返回一个列表
语法:split(pattern,string,maxsplit=0,flags=0)
参数说明:
pattern:匹配的正则表达式
string:要匹配的字符串
maxsplit:分隔次数,maxsplit=1分隔一次,默认为0,不限制次数,
flags:标志位,用于控制正则表达式的匹配方式