我有一個文本文件,我想解析。該文件有多個要提取的項目。我想捕獲冒號「:」和特定單詞之間的所有內容。我們來看下面的例子。解析多行之間的文本 - Python 2.7和重新模塊
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