我试图从一个目录,它的文件名遵循这种模式获得的文件列表:Python的正则表达式数字和下划线
PREFIX_YYYY_MM_DD.dat
例如
FOO_2016_03_23.dat
似乎无法得到正确的正则表达式。我试过以下内容:
pattern = re.compile(r'(\d{4})_(\d{2})_(\d{2}).dat')
>>> []
pattern = re.compile(r'*(\d{4})_(\d{2})_(\d{2}).dat')
>>> sre_constants.error: nothing to repeat
正则表达式对我来说肯定是一个弱点。任何人都可以解释我要去哪里错了吗?
要获得这些文件,我在做:
files = [f for f in os.listdir(directory) if pattern.match(f)]
PS,我怎么会允许的.dat和.DAT(不区分大小写文件扩展名)?
感谢
你是什么意思“逃避”呢? –
尝试're.compile(r'(?i)\ d {4} _ \ d {2} _ \ d {2} \。dat $')'然后'if pattern。搜索(f)' –
当我添加转义字符时,更改为搜索时修复了我的解决方案,谢谢 –