2015-01-09 36 views
0

我在python中編程,我需要一個正則表達式來提取| |在這些數據集中並保存結果以供重用。所以它應該從第一行提取66,從第二行提取1032,從第三行1472提取,等等。我是編程和正則表達式的新手。任何幫助都感激不盡!正則表達式來提取特定位置的數字

232404811.111146|66|ip:tcp 
232404811.111556|1032|ip:udp:data 
232404811.112015|1472|ip:tcp:http:data 
232404811.112060|1472|ip:tcp:http:data 

數據在一個文件中&我將逐行循環。

+0

爲什麼不通過管道拆分? – MightyPork 2015-01-09 20:32:34

回答

3

你並不需要一個正則表達式:

numbers_list = [] 
with open(filename) as f: 
    for line in f: 
     numbers_list.append(line.split("|")[1] 

這將分裂的性格|每一行,並採取第二場(記住索引是從0開始)。

如果你感覺看中,做了整個事情的列表理解(感謝Padraic):

with open(filename) as f: 
    numbers_list = [line.split("|")[1] for line in f] 
+0

或'numbers_list = [line.split(「|」)[1] for line in f]' – 2015-01-09 20:36:50

+0

@Padraic謝謝,我會藉此:) – MattDMo 2015-01-09 20:38:47

+0

非常感謝您的快速響應!會嘗試一下。 – Aikh 2015-01-09 20:38:57

0

要使用正則表達式匹配使用此:

^\d+\.\d+\|(\d+)\|.*?$ 

比賽是在捕捉組1