列出正则表达式过滤器

时间:2019-03-12 07:09:12

标签: python

下面是我的列表,

filelist = ["TEST.FILE.D.EVENT_1.dat_PROCESSED_20190218135317471809", "TEST.FILE.D.EVENT_2.dat_PROCESSED_20190218135317910679", "TEST.FILE.D.EVENT_DETAILS.dat_PROCESSED_20190108152515294319", "TEST.FILE.D.EVENT_TYPES.dat_PROCESSED_20190108153806491483"]

这是我的模式,

filenameregex = 'TEST.FILE.D.EVENT_[0-9]*.dat'

如何使用python中的filelist.regex(....)模式过滤此结果?

预期结果:

expectedresult = ["TEST.FILE.D.EVENT_1.dat_PROCESSED_20190218135317471809", "TEST.FILE.D.EVENT_2.dat_PROCESSED_20190218135317910679"]

1 个答案:

答案 0 :(得分:1)

我们在这里

import re

rx = re.compile(r"""TEST\.FILE\.D.EVENT_[0-9]*\.dat""")

filelist = ["TEST.FILE.D.EVENT_1.dat_PROCESSED_20190218135317471809", "TEST.FILE.D.EVENT_2.dat_PROCESSED_20190218135317910679", "TEST.FILE.D.EVENT_DETAILS.dat_PROCESSED_20190108152515294319", "TEST.FILE.D.EVENT_TYPES.dat_PROCESSED_20190108153806491483"]

expectedresult = list(
                     filter(
                         lambda file: rx.match(file),
                         filelist
                     )
                 )
print(expectedresult)

哪个产量

['TEST.FILE.D.EVENT_1.dat_PROCESSED_20190218135317471809', 'TEST.FILE.D.EVENT_2.dat_PROCESSED_20190218135317910679']
相关问题