风火编程--正则表达式应用

本文深入探讨了正则表达式的高效使用技巧,包括预编译、时间格式转换、单位统一、JS函数匹配等,旨在提升开发者在文本处理任务中的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则表达式的推荐使用方式–预编译

import re
s = "12hjk"
pattern = re.compile('.{4}')
r = pattern.match(s)
ret1 = r.group()
print(ret1)

时间格式

def make_time(self, ot):
    """
    把时间转成标准格式字符串
    :param time: 解析出来的时间格式: '2019-09-29 上午/中午/下午8点20分'
    :return: '2019-09-29 08:20'
    """
    t0 = re.sub(r"[点分]", "", ot)
    t1 = t0.split("午")[-1]
    if int(t1) < 1200:
        t2 = t0.replace("中", "上")
    else:
        t2 = t0.replace("中", "下")
    t3 = t2.replace("上午", "AM").replace("下午", "PM")
    t4 = datetime.datetime.strptime(t3, "%Y-%m-%d %p%I%M")
    return str(t4)

统一单位

def handle_unit(uo):
    """
    单位转换
    :param uo: 单位不同的时间数据ms/s/M/H
    :return:同一单位的时间ms
    """
    pattern = re.compile("^(\d*\.?\d*)(.*)$")
    r = pattern.match(uo)
    t, u = float(r.group(1)), r.group(2)
    d = {
        "ms": t,
        "s": t*1000,
        "M": t*60*1000,
        "H": t*60*60*1000
    }
    t_r = d[u]

    print(t_r)

匹配js的function

pattern_sub_js = re.compile(r"\(function.*?\}\).*?;", re.S)

正则切割符

import re
pattern = re.compile(r"\(\w*\)")
s = "hjkhjkh(你好)jmk(呀)"
r = pattern.split(s)
print(r)

正则捕获组

s = "1986-09-01"
r = re.sub('(\d{4})-(\d{2})-(\d{2})', r'\2/\3/\1', s)
print(r)

正则替换去空白

s = """
1  
2   
    
3 
4    
5
"""

r = re.sub(r'\s', "", s)
print(r)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值