【发布时间】:2015-04-24 09:56:22
【问题描述】:
鉴于文本文件中的行列表很长,我只想返回紧接在其前面的子字符串,例如单词 dog(描述 dog 的单词)。因此,例如说这些行包含 dog:
“hotdog” “big dog” “is dogged” “dog spy” “with my dog” “brown dogs”
在这种情况下,所需的结果只是“大”“我的”“棕色”
我用过这个python脚本
import re
with open('titles_500subset.txt') as searchfile:
for line in searchfile:
line = line.lower()
d = re.search('(.+?) eye', line)
if d:
found = d.group(1)
print found
这将返回 “with my” 和 “big”
所以在这里我不会得到“brown”,我会得到所有术语“with my”
如何在 dog 之前只指定一个单词(显然我不能在 (.+?) 之前放置一个空格,因为我会排除 “big” 和 “brown” 因为它们位于行首)?
如何只指定一个字符在 dog 之后,例如“s” 只得到狗和狗之前的词而不是顽固的?
在完美的情况下,我还希望能够指定要排除的结果,例如“my”.
非常感谢
【问题讨论】:
-
我没有在你的例子中找到字符串
eye。 -
是的,抱歉,错字,我正在搜索许多不同的词。