Python 使用正则表达式对文件中的行进行分组

Python 使用正则表达式对文件中的行进行分组,python,regex,Python,Regex,在Python中,我希望搜索一个文件并输出包含特定模式的所有行 我使用了: re.findall('5555',f.read()) 到目前为止,但这只是给了我一个所有比赛的列表,这显然不是我需要的。为了得到包含模式的所有行的输出,我需要使用什么?i、 e: blah.blah.5555.com blah 5555 blah blah 5555 3452 1244 谢谢。简单地说: re.findall('.*5555.*',f.read()) 应该这样做。或带有: (或者更快: re.fi

在Python中,我希望搜索一个文件并输出包含特定模式的所有行

我使用了:

re.findall('5555',f.read())
到目前为止,但这只是给了我一个所有比赛的列表,这显然不是我需要的。为了得到包含模式的所有行的输出,我需要使用什么?i、 e:

blah.blah.5555.com
blah 5555 blah blah
5555 3452 1244
谢谢。

简单地说:

re.findall('.*5555.*',f.read())
应该这样做。或带有:

(或者更快:

re.findall('(?:[^5]|5(?!555))*5555.*', f.read())
也许更快,有一个:

)

简单地说:

re.findall('.*5555.*',f.read())
应该这样做。或带有:

(或者更快:

re.findall('(?:[^5]|5(?!555))*5555.*', f.read())
也许更快,有一个:


)

我想这会管用的

lines = []
for line in f.readlines():
    match = re.findall('5555', line)
    if match:
        lines.append(line)

print "".join(lines)
也只有函数运算符

print "".join(filter(lambda x: re.findall('5555',x), f.readlines()))

我想这会管用的

lines = []
for line in f.readlines():
    match = re.findall('5555', line)
    if match:
        lines.append(line)

print "".join(lines)
也只有函数运算符

print "".join(filter(lambda x: re.findall('5555',x), f.readlines()))

如果您正在搜索固定字符串(您的示例似乎表明您正在搜索),您甚至可能不需要正则表达式:

>>> with open('file.txt') as f:
...     x = [line for line in f if '5555' in line]
...
>>> print x
['blah.blah.5555.com\n', 'blah 5555 blah blah\n', '5555 3452 1244\n']

如果您正在搜索固定字符串(您的示例似乎表明您正在搜索),您甚至可能不需要正则表达式:

>>> with open('file.txt') as f:
...     x = [line for line in f if '5555' in line]
...
>>> print x
['blah.blah.5555.com\n', 'blah 5555 blah blah\n', '5555 3452 1244\n']

如果您在linux上,您可以使用以下命令:
cat filename | grep 5555
@AshwiniChaudhary,这符合以下条件:如果您在linux上,您可以使用以下命令:
cat filename | grep 5555
@AshwiniChaudhary,这符合以下条件: