2

我有一个文本文件,其中包含我想提取与特定模式匹配的一行。我可以使用正则表达式搜索该行并返回它,然后再使用它吗?有没有比这更优雅的方式

for lines in file:
    if re.match(targetregex,line)!=None:
        print line

就像是:

print re.matchingline(targetregex,file.read())
4

3 回答 3

2

您可以像这样使用列表理解

print [line for line in file  if re.match(targetregex, line)]

它将返回与正则表达式匹配的行列表。

于 2013-10-25T14:34:29.607 回答
1

您总是可以编写自己的函数来完成这项工作。

def matchingline(regex, file):
    compiled = re.compile(regex)
    for line in file:
        if compiled.match(line):
            return line

print(matchingline(targetregex, file))
于 2013-10-25T14:35:01.973 回答
-1

如果你想要一个数组numpy.fromregex似乎足够优雅。

于 2013-10-25T14:43:20.283 回答