正则表达式-筛选非典型文件类型

时间:2018-07-16 10:58:17

标签: regex filenames

我有一个文件夹,其中装有纯文本文件,其文件名格式如下:

00001.7c53336b37003a9286aba55d2945844c
00002.9c4069e25e1ef370c078db7ee85ff9ac
00003.860e3c3cee1b42ead714c5c874fe25f7
00002.d94f1b97e48ed3b553b3508d116e6a09
00001.7848dde101aa985090474a91ec93fcf0

以字符串形式获取文件名后,如何过滤它们,以便所有相关文件都被接受而其他所有文件都被拒绝?

  • 我可以在受控环境中重新格式化所有文件以剥离 字符串直到.,然后添加另一个.和一个常量 文件类型。

  • 我可以尝试为长度设置一个固定的可接受值 .之后的字符串。

  • 我可以排除一些特定的文件类型,希望别的都不会错 通过。

所有这些方法都要求我重命名文件或确保第一人称文件夹中没有其他内容。

1 个答案:

答案 0 :(得分:1)

所有文件的扩展名都非常长。您可以使用以下命令选择扩展名恰好为32个字符的文件。

\.[^.]{32}$

或类似

\.[^.]{8,}$

与扩展名至少为8个字符的文件匹配。

仔细研究发现,(至少)在您的示例中,唯一的字母字符是a, b, ..., f,因此您可以通过以下方式进一步限制搜索范围:

\.[0-9a-f]{8,}$

在所有示例中,文件名都恰好有5位数字,并且以(至少)双0开头,我们可以将其与之合并:

^0{2}\d{3}\.[0-9a-f]{8,}$