Python学习随记(十三):正则表达式(2)

本文介绍了Python中的正则表达式基础,包括字符串分割、替换操作,以及如何使用re模块进行分组、提取子串、贪婪匹配和预编译以提高效率。实例演示了如何解析身份证号、时间格式和数字模式的匹配。
摘要由CSDN通过智能技术生成

Python学习随记(十三):正则表达式(2)

import re

a = 'a,b,c,d,e'
print(a.split(","))

a = "a,b|c#d,,e"
print(a.replace("|", ",").replace("#", ",").split(","))

print(re.split(r"[,|#]+", a))

print(re.split("[,;\s]+", "a,b;; c  d"))

# 分组 group
# groups 返回一个元组 记录所有括号获取的值
# group(num) 0 整个正则表达式相匹配的字符串  1 返回一个获取符合的字符串
# 340122200601014212
id_str = '340122200601014212'
print(re.match("(\d{6})(\d{8})(.*)", id_str).groups())
print(re.match("(\d{6})(\d{8})(.*)", id_str).group(0))
print(re.match("(\d{6})(\d{8})(.*)", id_str).group(1))
print(re.match("(\d{6})(\d{8})(.*)", id_str).group(2))

# 匹配时分秒
# 24小时制
time_str = '09:09:10'
print(re.match("([0-1][0-9]|2[0-3]):([0-5]\d):([0-5]\d)", time_str).group(1))
print(re.match("([0-1][0-9]|2[0-3]):([0-5]\d):([0-5]\d)", time_str).group(2))
print(re.match("([0-1][0-9]|2[0-3]):([0-5]\d):([0-5]\d)", time_str).group(3))

# 贪婪匹配  匹配所有符合规则的字符串
# ? 进入懒惰模式
print(re.match("(\d+?)(0*)$", '10230000').groups())

# 预编译 遇到很多相同样式的匹配的时候使用
num0_pattern = re.compile("(\d+?)(0*)$")
print(num0_pattern.match("10230000").groups())
print(num0_pattern.match("10230"))
print(num0_pattern.match("102"))
print(num0_pattern.match("102300000000"))
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值