import re
import os # You can go without is if you have other means to get your filepath
i = 1
matches = []
target = raw_input("Please type string to match\n")
with open(os.getenv("SOME_PATH") + "/myfile.txt") as fic: # open("myfile.txt") if in your current directory
for line in fic:
if re.search(target, line):
print "Found at line {}".format(i)
matches.append(i)
i = i +1
if not len(matches):
raise Exception, "target not found"
实现这一点有两种方法:
对于方法1,首先读取每一行,然后获取单词所在的索引:
或者,浏览文件以查找索引:
代码的第(1)部分将每一行读取为变量“content”中的单独列表。
第(2)部分仅当“披萨”存在于内容行中时才填充内容行。[x代表x in range(len(content))]只填充所有索引值,而'if'pizza'在content[x].lower()'中保留与字符串匹配的行。
像这样的?
通过这样做,您可以输入一个正则表达式,它应该可以工作(即,如果您输入“p.zza”或“^p.*”,它将工作)。列表
matches
将包含与输入模式匹配的所有行索引。相关问题 更多 >
编程相关推荐