用于表格数据的大文本文件中的Pythonic Regular Expression

时间:2014-03-05 09:24:53

标签: python regex

我有一个大文本文件,有很多控制台输出。我对所有看起来像这样的输出感兴趣(输出和负载损失):

enter image description here

文本文件可以分发几个感兴趣的段落。什么是Pythonic正则表达式捕获这些值。

我可能试图在这里推动正则表达式;但是,如果在每个这样的表之前有一个###### PROJECT Name:ABCD ######,但不是之前,是否也可以捕获项目名称?

2 个答案:

答案 0 :(得分:1)

嗯,快速而肮脏的解决方案可能是这样的......

projectname = ""
overload = ""
loss_of_load = ""
for line in data:
    if line.startswith("#######PROJECT"):
        projectname = line
    if line.startswith("OVERLOAD"):
        overload = line
    if line.startswith("LOSS OF LOAD"):
        loss_of_load = line
        print(projectname, overload, loss_of_load)

答案 1 :(得分:1)

试试这个正则表达式:

\#\#\#\#\#\#PROJECT\s+Name:\s+(?P<PROJECT_NAME>.+?)\#\#\#\#\#\#
.+?
(?P<OVERLOAD>OVERLOAD\(%\)(?:\s+\d+\.\d+){4}).+?
(?P<LOSS_OF_LOAD>LOSS\s+OF\s+LOAD\s+\(M\)(?:\s+\d+\.\d+){4})

调节剂

sxg

演示

http://regex101.com/r/gJ1mK4