【发布时间】:2018-10-27 13:25:18
【问题描述】:
我想打印输入文件中出现字符串的所有行以及行号。到目前为止,我编写了如下所示的代码。它正在工作,但不是我想要的方式:
def index(filepath, keyword):
with open(filepath) as f:
for lineno, line in enumerate(f, start=1):
matches = [k for k in keyword if k in line]
if matches:
result = "{:<15} {}".format(','.join(matches), lineno)
print(result)
print (line)
index('deneme.txt', ['elma'])
输出如下:
elma 15
Sogan+Noun ,+Punc domates+Noun ,+Punc patates+Noun ,+Punc elma+Noun ve+Conj turunçgil+Noun+A3pl ihracat+Noun+P3sg+Dat devlet+Noun destek+Noun+P3sg ver+Verb+Pass+Prog2+Cop .+Punc
到目前为止一切顺利,但是当我输入像 "Sog" 这样的关键字时,它也会找到 Sogan 但我不希望这样,我只想检查空格之间的标记。我想我需要为此编写正则表达式,我得到了一个,但我现在不知道如何将该正则表达式添加到这段代码中。
r'[\w+]+'
【问题讨论】:
标签: python regex python-3.x file keyword