正则表达式「3」

数量——匹配多个字符的相关格式

* 匹配前一个字符出现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
View Code

+ 匹配前一个字符出现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'
View Code

? 匹配前一个字符出现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
View Code

{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
View Code
原文地址:https://www.cnblogs.com/Chris-math/p/8317884.html