我有一个文本文件,我想解析。该文件有多个要提取的项目。我想捕获冒号“:”和特定单词之间的所有内容。我们来看下面的例子。解析多行之间的文本 - 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