番号付きの行のみを印刷するように最善を尽くしています。私は一般的に正規表現にまだ慣れていないため、コードは部分的にしか完成していないため、正しい方法や構文を使用していない可能性があります。個々の re.matches は正常に機能します。それらを組み合わせると、望ましくない結果が得られます。
サンプル文字列:
file = '''
title|Head1|Head2|Head3|head4
----|------|-----|-----|
1|1150976|0|25300992|bfa92720/bfa924f8|su|(None, None)
2|1150976|0|25300992|bfa92720/bfa924f8|su|(None, None)
3|1150976|0|25300992|bfa92720/bfa924f8|su|(None, None)
4|1150976|0|25300992|bfa92720/bfa924f8|su|(None, None)
5|1150976|0|25300992|bfa92720/bfa924f8|su|(None, None)
All|processes:|MemAlloc|=|408125440|(None, None)|0.0.0.0
|(None, None)
0.0.0.0 ,text
'''
import re
for line in file:
pat= re.match('(^[A-Z][a-z])|(^--.+)',line) # or use re.match('^[0-9]',line) and match pat != None
patIP = re.match ('^{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}',line)#
if patIP == None or pat == None:
print(line)
番号付きの行だけを印刷するロジックに固執しています..おそらく完全にオフです..0.0.0.0(IPアドレス)行を印刷したくないことに注意してください。
望ましい出力:
1|1150976|0|25300992|bfa92720/bfa924f8|su|(None, None)
2|1150976|0|25300992|bfa92720/bfa924f8|su|(None, None)
3|1150976|0|25300992|bfa92720/bfa924f8|su|(None, None)
4|1150976|0|25300992|bfa92720/bfa924f8|su|(None, None)
5|1150976|0|25300992|bfa92720/bfa924f8|su|(None, None)