2015-12-09 2 views
0

Я пытаюсь написать сценарий, который берет список слов из одного файла и пытается найти эти конкретные слова в другом файле, и если определенное слово найдено, то вся строка напечатана , Проблема в том, что я хочу, чтобы в файле поиска только слова, которые я ищу, будут сопоставлены Пример: если мне нужно искать слово «word123», мне не нужно иметь хит «word12345» "можно найти только первое соответствующее точное слово я написалиспользование регулярных выражений с python

Это код:

for line in searchfile: 
    for word in keywords: 
     if re.search ("^word$" , line): 
      print(line.strip(), file = new_file) 
      break 

результат всегда пустой файл

+0

У вас также есть такие слова в вашем списке как * -word- * или * = пуск = *? –

ответ

2
if re.search (r"\b"+word+r"\b" , line): 

Вы должны использовать \b или word boundary здесь.

1

Вместо регулярных выражений

"^" + word + "$" 

попробовать:

r"^.*\b" + word + r"\b.*$" 
+0

, если строка содержит в себе какие-либо другие слова, то^и $ могут привести к ее провалу. –

+0

Не с двумя. * Образцами. –

+0

ах право. пропустил их полностью, извините:^\ –

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