2015-01-09 2 views
0

Я программирую на python, и мне нужно регулярное выражение, которое будет извлекать число между | | в этом наборе данных и сохранить результат для повторного использования. Поэтому он должен извлечь 66 из 1-й строки, 1032 из 2-го, 1472-го с 3-го и так далее. Я новичок в программировании и регулярном выражении. Любая помощь будет высоко ценится!Регулярное выражение для извлечения чисел в определенном месте

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

ответ

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] для строки в f]' –

+0

@Padraic спасибо, я займусь этим :) – MattDMo

+0

Большое спасибо за быстрый ответ! попробуем это. – Aikh

0

Чтобы соответствовать этому с регулярных выражений использования:

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

Игра в захвате группа 1

Смежные вопросы