Java でファイル名をフィルタリングする際に多くの問題が発生しています。PrimeFaces の fileUpload タグを使用していますが、ファイルに含まれるファイルが英数字のみで、その後に「.txt」などの拡張子が続く場合にアップロードできるファイルを許可する必要があります。具体的には、名前には拡張子の前に、AZ、az、または 0-9 の 1 つまたは複数が含まれ、スペースやその他の文字は含まれず、その後に拡張子「.txt」が続く必要があります。 「。」拡張子の先頭にある必要があります。
これまでのところ、名前をフィルタリングする試みはすべて適切に機能していません.
。除外すると、拡張子からも除外されます。ファイル名は、、などのタイプである必要がありますがabcXYZ123.txt
、などaaaccc001.txt
ではありません。ab.cd.txt
/[A-Za-z0-9]+\\.txt$/
、/[^\\W_]+\\.txt$/
、などのさまざまな組み合わせを試し/[\\p{Alnum}]\\.txt$/
ましたが、無効な名前が許可されるか、有効な名前が除外されます。
いくつかの助けをいただければ幸いです。