У меня есть текстовый файл, который я хочу разобрать. В файле есть несколько элементов, которые я хочу извлечь. Я хочу захватить все между двоеточием «:» и конкретным словом. Возьмем следующий пример.Разбор текста между несколькими строками - Python 2.7 и re Module
Description : a pair of shorts
amount : 13 dollars
requirements : must be blue
ID1 : 199658
----
Следующий код анализирует информацию.
import re
f = open ("parse.txt", "rb")
fileRead = f.read()
Description = re.findall("Description :(.*?)amount", fileRead, re.DOTALL)
amount = re.findall("amount :(.*?)requirements", fileRead, re.DOTALL)
requirements = re.findall("requirements :(.*?)ID1", fileRead, re.DOTALL)
ID1 = re.findall("ID1 :(.*?)-", fileRead, re.DOTALL)
print Description[0]
print amount[0]
print requirements[0]
print ID1[0]
f.close()
Проблема заключается в том, что иногда текстовый файл будет иметь новую строку, как этот
Description
: a pair of shorts
amount
: 13 dollars
requirements: must be blue
ID1: 199658
----
В этом случае мой код не будет работать, потому что он не может найти «Описание:» потому, что он теперь разделяется на новую строку. Если я захочу изменить поиск на «: (. *?) Требования« он не вернет всего 13 долларов, он вернет пару шорт и 13 долларов, потому что весь этот текст находится между первым двоеточием и словом , требования. Я хочу иметь способ разбора информации независимо от того, есть ли разрыв строки или нет. Я попал в дорожный блок, и вам будет очень благодарна ваша помощь.
Почему вы не сделать его 'r'Description \ S + ... '', что позволяет несколько пробельных символов (включая символ новой строки)? – jonrsharpe
hahahaha, такое легкое решение. Я с ума сходил. Это сделало это, спасибо – benipy