1
人性化的文件名检测
介绍 文件名可能千差万别,范围从简单blah.txt到303549020150514101638190-MSP0.txt。前者通常是人为产生的,而后者通常是机器产生的。拥有一个简单的功能对文件是否可以被认为是“人类友好的”做出有根据的猜测,这会很好吗? 受Eduard Florinescu的帖子启发,此帖子已被删除。他的想法很好,但只需要一点充实。 挑战 用您选择的语言编写可以接受字符串的程序或函数,并确定是否将该挑战定义为“对人类友好”。 一些进一步的细节和规则如下: 输入将是由95个可打印的ASCII字符组成的字符串。 “人类友好”应据此定义: 在考虑中不包括扩展名。扩展名定义为最后一个句号,后跟一系列字母数字字符(少至1个,最多6个)。 长度不超过一半的字符串(不包括扩展名)可以由以下定义的字符分组(组合)组成: 连续超过8个十进制字符。 连续至少16个十六进制字符(大写或小写)(必须由字母和数字组成,并且其中至少三分之一的字符是数字)。 %+=连续至少12个Base64字符(用作特殊字符)(必须由字母和数字组成,大小写混合,并且其中至少三分之一是大写字母)。 如果以上任何分组在定义上重叠(例如,符合条件的分组为base64,但连续有8位数字),请选择要排除的最长分组。 输出应该是真实值还是虚假值,具体取决于字符串是否被认为是“人类友好的”。 假设将仅使用有效输入。不用担心错误处理。 优胜者将由最短的程序/功能决定。他们将至少在7天内被选中,或者如果/足够的话,将被选中。如果出现平局,则较早的答案为准。 例子 这是您的代码应能够处理的一些输入和输出示例: "results_for__michael_greer.txt.zip" => true "Georg Feuerstein - Connecting the Dots.pdf" => true "M People - Search for the Hero-ntuqTuc6HxM.mp4" => true "index.html?v=QTR4WGVTUzFsV3d8NHxvcmlnaW5hbHx8MTExMTAxBHxodHRwOi8vLCwsLHRyLDcsMA%3D%3D.html" => false "ol2DCE0SIyQC(173).pdf" => false "d41d8cd98f00b204e9800998ecf8427e.md5" => false "12792331_807918856008495_7076645197310150318_o.jpg" …