代码之家  ›  专栏  ›  技术社区  ›  maja

regex-不典型文件类型的筛选器

  •  1
  • maja  · 技术社区  · 6 年前

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

    00001.7c53336b37003a9286aba55d2945844c
    00002.9c4069e25e1ef370c078db7ee85ff9ac
    00003.860e3c3cee1b42ead714c5c874fe25f7
    00002.d94f1b97e48ed3b553b3508d116e6a09
    00001.7848dde101aa985090474a91ec93fcf0
    

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

    • 我可以在受控环境中重新格式化所有文件,以删除 连接到 . ,然后添加另一个 . 一个常数 文件类型。

    • 我可以尝试为 字符串在 . .

    • 我可以排除一些特定的文件类型,希望没有其他的错误。 通过。

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   s_baldur    6 年前

    这些文件都有很长的扩展名。您可以使用以下命令选择扩展名正好为32个字符的文件。

    \.[^.]{32}$
    

    或者类似的

    \.[^.]{8,}$
    

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

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

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

    同样,在所有示例中,文件名只有5位数字,并且以(至少)两倍开头 0 我们可以将其与:

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