python正则表达式
2021-03-15
\d
匹配一个数字\w
匹配一个数字或字母.
匹配任意字符*
匹配0到多个字符,+
匹配1到多个字符,?
匹配0或1个字符,{n}
表示n个字符,{n,m}
表示n-m个字符\s
匹配一个空格(也包括tab)
\d{3}\s+\d* #匹配3个数字,后面至少有一个空格,再后面有可能有数字,有可能没数字
[]
可用于更精确的匹配
[0-9a-z\_] #匹配一个数字或一个小写字母或一个下划线
A|B
可匹配A或B^
表示行的开头,^\d
表示必须以数字开头$
表示行的结束,$\d
表示必须以数字结束
re模块 #
- 因为python字符串本身也用
\
转义,可以使用r
前缀,就可以不用考虑字符串转义了。r'ABC\-001'
re.match(r'\d{3}\-\d$'),'010-1')
,如果匹配成功就返回一个Mache对象,否则返回none。re.split(r'[\s\,]+','a,b, c d')
,切割字符串,能切割出['a','b','c']
- 正则表达式还有提取字串的功能,用
()
表示的就是要提取的分组。r'(\d{3})-(\d{3,8})'
就定义了两个组,可以使用group(n)
方法提取出子串
贪婪匹配 #
- 正则默认的时贪婪匹配,加个
?
就可以采用非贪婪匹配。\d+?
r = re.match('(\d+?)(0*)$','1200000')
print(r.groups())
#结果('12', '00000')