2013-02-25 5 views
0

Я пытаюсь извлечь определенные слова из файла с помощью regex в python, но я не могу его получить. Мой исходный файл выглядитСоответствие регулярного выражения файла Python

List/VB 
[ the/DT flights/NNS ] 
from/IN 

и я хочу выход быть

List VB 
the DT 
flights NNS 
from IN 

Я написал следующий код:

import re 

with open("in.txt",'r') as infile, open("out.txt",'w') as outfile: 
    for line in infile: 
     if (re.match(r'(?:[\s)?(\w\\\w)',line)): 
      outfile.write(line) 

ответ

2

с данными выборки вы предоставили:

>>> data = """List/VB 
... [ the/DT flights/NNS ] 
... from/IN""" 

>>> expr = re.compile("(([\w]+)\/([\w]+))", re.M) 
>>> for el in expr.findall(data): 
>>>  print el[1], el[2] 
List VB 
the DT 
flights NNS 
from IN 
+0

мой выход печатается как массив, как я делаю это строка? –

+0

Вы хотите, чтобы вы преобразовали el [1] и el [2] в одну строку? в этом случае вы можете сделать s = "% s% s"% el [1: 3] –

0
import re 

expr = re.compile("(([\w]+)\/([\w]+))", re.M) 
fp = open("file_list.txt",'r') 
lines = fp.read() 
fp.close() 
a = expr.findall(lines) 
for el in expr.findall(lines): 
    print ' '.join(el[1:]) 

Выходы:

List VB 
the DT 
flights NNS 
from IN 
+0

Вы должны сформулировать свой ответ. – Beppe