正则表达式
匹配
\d 匹配一个数字
\w 匹配一个字母
\s 匹配一个空格或tab空白符
[] 匹配一个范围,例如[0-9a-zA-Z\_]
可以匹配一个数字、字母或者下划线
. 表示任意一个字符
? 表示任意一个或零个字符
个数
+ 表示其前面的字符串至少出现了一次
{n} 表示其前面的字符串出现了n次
{n,m} 可以表示其前面的字符串出现了n-m次
转义
\ 表示转义
r'' 引号中的特殊字符会被转义(建议使用这种,不用考虑转义问题)
re模块
match()方法 判断是否匹配,如果匹配成功,返回一个Match对象,否则返回None。常见语法如下:
12345 | str = '用户输入的字符串' if re.match(r '正则表达式' , str ): print ( 'ok' ) else : print ( 'failed' ) |
例如:
123456 | #匹配ip地址 import re if re.match(r '\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}' , '127.0.0.1' ): print ( 'ok' ) else : print ( 'false' ) |
分组
() 小括号中匹配的分为一组,常用功能:简洁代码、字串提取,例如:
#匹配ip地址,相同的部分写成了一组 import re if re.match(r '(\d{1,3}.){3}\d{1,3}' , '127.0.0.1' ): print ( 'ok' ) else : print ( 'false' ) |
#识别时间,提取小时、分钟、秒 import re t = '23:05:30' m = re.match(r '^(0[0-9]|1[0-9]|2[0-3]|[0-9]):(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9]):(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$' , t) print (m.groups()) |