python正则表达式

python正则表达式

2021-03-15
python
  • \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')