Python:如何筛选列表中符合特定格式要求的文件名字符串
实现方案
直接使用精确全匹配的正则表达式即可满足全部4个筛选条件,针对大数据量场景推荐预编译正则提升执行效率。
正则规则说明
使用的正则表达式为 r'^AB\d{7}\.txt$',各部分对应要求如下:
^锚定字符串起始位置,确保以AB开头AB匹配固定前缀\d{7}匹配恰好7位阿拉伯数字\.txt匹配固定后缀,.前加反斜杠转义避免匹配任意字符$锚定字符串结束位置,确保没有多余的其他字符
代码示例
import re # 预编译正则,大数据量下可避免循环中重复解析正则,性能提升明显 file_pattern = re.compile(r'^AB\d{7}\.txt$') # 注意不要用list作为变量名,会覆盖Python内置的list类型,这里替换为file_list file_list = ['AB8372943.txt', 'test.pdf', '123485940.docx', 'CW2839502.txt', 'AB1234567.txt', '283AB.txt'] # 筛选符合规则的文件名 result_list = [file for file in file_list if file_pattern.fullmatch(file)]
输出结果
执行后得到的result_list就是你需要的目标列表:['AB8372943.txt', 'AB1234567.txt']
内容的提问来源于stack exchange,提问作者Kate
相关产品推荐
相关产品推荐

