python使用re正则表达式处理数据

可以通过下面方法对shell输出的数据进行关键数据提取

  • 示例1:
data2 = """
   1 | 07/23/2022 | 01:39:47 | Event Logging Disabled SEL_Status | Log area reset/cleared | Asserted
   2 | 07/23/2022 | 07:29:08 | System Boot Initiated BIOS_Boot_Up | Initiated by power up | Asserted
"""
对data2数据提取和处理
def mes_pro():
    import re
    log_data_re = dict(
    #提取时间
        time = r'\d{2}/\d{2}/\d{4} \| \d{2}:\d{2}:\d{2}',
    #提取日志信息
        log  = r':\d{2} \| (.*)'
    )
    list = []
        for k, v in log_data_re.items():
        print(v)
        pattern = re.compile(v, re.M)
        ret = pattern.findall(data2)

        list += ret
        # print(list)
    return  list

dataset  = mes_pro()
print(dataset)
out = '    '.join(dataset)
print(out)

在这里插入代码片


 - 示例2:
```bash
import re 
data = '''
     name: lalala
     ip: 10.120
     PortID:       ifname H 0/52
'''
def retest():
 	#正则表达式,匹配data数据中的value值
    a =  dict(
    name = r'[ \t]+name:[ \t](.*)',
    ip = r'[ \t]+ip:[ \t](.*)',
    portid=r'[ \t]+PortID:[ \t]+(.*)'
)
    list = []
    for k,v in a.items():
        # print(k,v)
        out = re.compile(pattern=v,flags=re.M)
        result = re.findall(v,data)
        # print(out,result)
        # print(result)
        list += result
    return  list

a = retest()
print(a)


#拼接数据a
result = '|'.join(a)
print(result)
print(type(result))
name,ip,port = result.split('|')
print(ip)
print(name)

输出结果

['lalala', '10.120','ifname H 0/52']
lalala|10.120|ifname H 0/52
10.120
lalala
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值