我看到一堆有“.sha256”文件的 FOSS 项目。它们看起来像这样:
dsdfdfdsffdfsdfdsfdsfdsfdsfdsfds23r2ewrefdefdsfdsgfdsgffgfkgdfgg *meow.exe
Asdfdfdsffdfsdfdsfdsfdsfdsfdsfds23r2ewrefdefdsfdsgfdsgffgfkgdfg3 cool_stuff.exe
dsdfdfdsfDdfsdfdsfdsfdsfdsfdsfds23r2ewrefdefdsfdsgfdsgffg3kgdfgg even_more_stuff.exe
Run Code Online (Sandbox Code Playgroud)
我目前通过以下方式得到这些:
#^([A-Za-z0-9]{64})\s+(\S+)$#um
Run Code Online (Sandbox Code Playgroud)
这将匹配dsdfdfdsffdfsdfdsfdsfdsfdsfdsfds23r2ewrefdefdsfdsgfdsgffgfkgdfgg和*meow.exe等。神秘地以星号开头的文件名(我无数次试图查找它,但不知道这意味着什么)被剥夺了它们的开头*。
还有比这更重要的事情吗?如果文件名中包含空格而不是下划线,会发生什么情况?然后我的正则表达式崩溃了。可以引用它们吗?如果是,是使用 Linux(单引号)还是 Windows 风格(双引号)引用?
这种看似简单的文件格式实际上有无数与之相关的问题,但我没有在任何地方看到它的定义。到目前为止,我也没有遇到过使用空格或任何类型的引号的文件名。但他们确实使用星号,显然它也可以出现在文件名的末尾......
应该如何解析这种疯狂,以免有一天崩溃?