我有一个文件有这样的数据
D11/22/1984 D 123 q423 ooo 11/22/1987
R11/22/1985 123 q423 ooo 11/22/1987
D12/24/1986 123 q423 ooo 11/22/1987
511/27/1987 123 q423 ooo 11/22/1987
D18/29/1988 123 q423 ooo 11/22/1987
我需要选取与模式^D(\d{2}/\d{2}/\d{4})
匹配的第一个记录,然后中断并停止遍历文件的其余部分。在
例如,在上面提到的数据中,我只想选择值D11/22/1984
,而不是D12/24/1986
或{
我想使用re
模块用Python编写它。在
您可以像这样使用其余的数据
Demo
可以使用一个函数,该函数通过for循环迭代file对象,并在找到第一个匹配项时返回:
迭代一个file对象会产生一行一行的结果。所以,我们只检查尽可能多的线路。在
另外,我从模式中删除了
^
,因为默认情况下re.match
已经与字符串的开头匹配。在如果已经打开了一个file对象,只需删除with语句并将文件作为参数传递给函数:
^{pr2}$当你处理完文件后,记得把它关上。在
您可以在文件obj上构建一个生成器(下面假设它名为
f
),它应用您的re.match
,然后获取匹配项的第一个匹配项,例如:如果您得到
^{pr2}$None
,则没有找到匹配项。您还可以扩展此功能,以便轻松获取n
多个匹配项:如果得到一个空列表,则找不到匹配项。在
相关问题 更多 >
编程相关推荐