我有一个文本文件,其中包含我想提取与特定模式匹配的一行。我可以使用正则表达式搜索该行并返回它,然后再使用它吗?有没有比这更优雅的方式
for lines in file:
if re.match(targetregex,line)!=None:
print line
就像是:
print re.matchingline(targetregex,file.read())
您可以像这样使用列表理解
print [line for line in file if re.match(targetregex, line)]
它将返回与正则表达式匹配的行列表。
您总是可以编写自己的函数来完成这项工作。
def matchingline(regex, file):
compiled = re.compile(regex)
for line in file:
if compiled.match(line):
return line
print(matchingline(targetregex, file))
如果你想要一个数组numpy.fromregex似乎足够优雅。