我在用 Java 过滤文件名时遇到了很多问题。我正在使用 PrimeFaces fileUpload 标签,如果文件仅包含字母数字字符后跟扩展名,例如“.txt”,则我需要允许可以上传的文件。具体来说,在扩展名前,名称必须包含AZ、az或0-9中的一个或多个,不能有空格或其他字符,后跟扩展名“.txt”,即必须有一个,并且只有一个“。” 在名称中,并且必须在扩展名的开头。
到目前为止,过滤名称的所有尝试都没有正确解决,如果我 exclude .
,那么它也被排除在扩展之外。文件名的类型应为:abcXYZ123.txt
、、aaaccc001.txt
等,但不是ab.cd.txt
等。
我尝试了 , , 等的各种组合/[A-Za-z0-9]+\\.txt$/
,/[^\\W_]+\\.txt$/
但/[\\p{Alnum}]\\.txt$/
它们要么允许某些无效名称,要么排除某些有效名称。
一些帮助将不胜感激。