# -*- coding: utf-8 -*-

# \d  >>> 一个数字
# \w  >>> 一个字母或数字
#  .  >>> 任意字符
#  *  >>> 任意个字符
#  +  >>> 至少一个字符
#  ?   >>> 表示0个或1个字符
# {n} >>> n个字符
# {n,m} >>> n-m个字符
# \s >>> 一个空格
# | >>>  或 (A|B可以匹配A或B)
# ^ >>> 行的开头
# $ >>> 行的结束

import re
m = re.match(r'^(\d{3})-(\d{3,8})$','012-32123')
print(m)
print(m.group(0))
print(m.group(1))
print(m.group(2))

t = '16:51:23'
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())

#贪婪匹配
print(re.match(r'^(\d+)(0*)$','12030000').groups())
#非贪婪匹配 ?
print(re.match(r'^(\d+?)(0*)$','12030000').groups())

#预编译:
re_telephone = re.compile(r'^(\d{3})-(\d{3,8})$')
# 使用：
print(re_telephone.match('010-232343').groups(0))