python 正则表达式测试

import re

#  匹配:3位数字-3至8位数字
if re.match(r'^\d{3}\-\d{3,8}$', '010-12345'):
    print(True) #True
else:
    print(False) 
 
#  匹配:3位数字  3至8位数字    
if re.match(r'^\d{3}\-\d{3,8}$', '010 12345'):
    print(True)
else:
    print(False) # False

# 分割符的用法 
print('a bc d e f'.split()) # ['a', 'bc', 'd', 'e', 'f']
print('abc d  ef'.split(' '))# ['abc', 'd', '', 'ef']
print(re.split(r'\s+', 'a b   c'))# ['a', 'b', 'c']
print(re.split(r'[\s\,]+', 'a,b, c  d'))# ['a', 'b', 'c', 'd']
print(re.split(r'[\s\,\;]+', 'a,b;; c  d'))# ['a', 'b', 'c', 'd']

# ^表示开头, $表示结尾
m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345') # 010-12345
print(m.group(0)) # 010-12345
print(m.group(1)) # 010
print(m.group(2)) # 12345

# 匹配时间格式 
t = '19:30:05' #00-09或者10-19或者20-23或者0-9
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.group(0)) # 19:30:05
 
# 预编译:(多次用到的正则表达式可采用)
re_telephone = re.compile(r'^(\d{3})-(\d{3,8})$')
print(re_telephone.match('010-12345').groups())
 
# 简单匹配日期格式
print(re.search(r'(\d{4})-(0[0-9]|1[0-2])-(0[0-9]|1[0-9]|2[0-9]|3[0-1])', 'xxxx1990-11-31xxxx').group(0))

# 网上日期和时间格式的例子 
print(re.search(r'\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}', 'xxxx2005-06-04T18:37:11xxxx').group(0))
print(re.search(r'\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}', 'xxxx2005-06-04T18:37:11.111xxxx').group(0))
pattern=re.compile(r'(\d{4}-\d{2}-\d{2})((T\d{2}:\d{2}:\d{2}|))((.\d{3})|)')
print(pattern.search('xxxx2005-06-04T18:37:11.111xxxx').group(0))






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值