Python解析文本

2024-10-01 04:52:26 发布

您现在位置:Python中文网/ 问答频道 /正文

这里是一个文本,我需要解析

JAVA_OPTS=blablalba
lbalbalba

1. main1:

     aelo1 2020-06-15 11 4422
     sddg2 2020-06-12 19 422

2. main2:

     fdata3 2020-06-15 11 4422
     gcontent4 2020-06-12 19 422

3. main3:

     hxvnt5 2020-06-15 11 4422
     vcfdet6 2020-06-12 19 422

我只需要解析编号的项目符号,直到下一个项目符号。并找到第4列大于1000且大于12小时(第2列日期时间),然后通过电子邮件发送详细信息。我尝试在python中通过re库进行解析,但无法实现

因此,预期产出为:

    1. main1:

         aelo1 2020-06-15 11 4422

    2. main2:

         fdata3 2020-06-15 11 4422

    3. main3:

         hxvnt5 2020-06-15 11 4422

可以通过bash或python实现吗


Tags: 项目文本符号javaoptsmain1main2blablalba
2条回答

这里有一个解决方案

def parsing(text):
    if text.strip() == '':
        return ''
    lines = text.split('\n')
    buffer = ''
    for line in lines:
        t = line.strip()
        if t == '' or t[0] in '0123456789':
            buffer += line + '\n'
        else:
            lst = t.split()
            if len(lst) >= 4:
                if (len(lst[1].split('-'))==3 and int(lst[2]) <= 12 and
                        int(lst[3]) > 1000):
                    buffer += line + '\n'
    return buffer.strip()

print(parsing(text))

这是您可以用来匹配的正则表达式(我不确定大约12小时)

\d+\.\s\S+\s+\S+\s[0-9-]+\s\d+\s[1-9][0-9]{3,}

相关问题 更多 >