Python re.findall来自文件

时间:2015-05-20 20:40:14

标签: python

我正在尝试提取文本文件中两个关键字之间的所有文本。关键字在文件中出现多次,因此我将有多个好文本块。

input.txt文件是:

bad bad keyword1 GOOD DATA keyword2 bad
bad bad bad keyword1 MORE 
GOOD DATA keyword2 bad bad 

这不起作用:

import re

f = open('input.txt', 'r')
trim = re.findall('keyword1(.+?)keyword2', f.read())
print trim

它返回一个空列表:

[]

2 个答案:

答案 0 :(得分:3)

如果你想获取所有数据,你应该使用re.DOTALL标志:

trim = re.findall('keyword1(.+?)keyword2', f.read(), re.DOTALL)

通常点字符表示获取所有字符但是\ n。使用DOTALL属性,引擎也匹配\ n作为点字符。

输出:

[' GOOD DATA ', ' MORE \nGOOD DATA ']

答案 1 :(得分:0)

$(inherited)