数量——匹配多个字符的相关格式
* 匹配前一个字符出现0次或者无限次,即可有可无
示例一:
#coding=utf-8 #需求:匹配一个字符串第一个字母为大小字符,后面都是小写字母并且这些小写字母可有可无 import re ret = re.match("[A-Z][a-z]*","Mm").group() print ret Mm ret = re.match("[A-Z][a-z]*","Aabcdef").group() print ret Aabcdef
+ 匹配前一个字符出现1次或者无限次,即至少有1次
示例二:
#coding=utf-8 #需求:匹配变量名是否有效 import re ret = re.match("[a-zA-Z_]+[w_]*","name1").group() print ret 结果:name1 ret = re.match("[a-zA-Z_]+[w_]*","_name").group() print ret 结果:_name ret = re.match("[a-zA-Z_]+[w_]*","2_name").group() print ret 结果:Traceback (most recent call last): File "/usercode/file.py", line 4, in <module> ret = re.match("[a-zA-Z_]+[w_]*","2_name").group() AttributeError: 'NoneType' object has no attribute 'group'
? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
示例三:
# -*- coding: utf-8 -*- #需求:匹配0到99之间的数字 import re ret = re.match("[1-9]?[0-9]","7").group() print ret 结果:7 ret = re.match("[1-9]?[0-9]","33").group() print ret 结果:33
{m} 匹配前一个字符出现m次
示例四:
#coding=utf-8 #需求匹配8到20位的密码,可以是大小写英文字母、数字、下划线 import re ret = re.match("[a-zA-Z0-9_]{6}","12a3g45678").group() print ret 结果:12a3g4 ret = re.match("[a-zA-Z0-9_]{8,20}","1ad12f23s34455ff66") ret.group() 结果:1ad12f23s34455ff66