Java 如何匹配包含空格的文件名

Java 如何匹配包含空格的文件名,java,file,file-upload,Java,File,File Upload,我们需要验证文件类型。因此,某些文件类型应该被接受 只要文件名之间没有空格,实际代码就可以正常工作。但是当有一个文件时,我们进入“error…!!!”路径,程序说该文件无效 示例:Home Home.png标记为无效,但Home.png标记为有效 即使包含withe空格,我们如何匹配文件名 下面是我的代码 public boolean fileUpload(UploadedFile uploadFile) { boolean validFile = true; System.o

我们需要验证文件类型。因此,某些文件类型应该被接受

只要文件名之间没有空格,实际代码就可以正常工作。但是当有一个文件时,我们进入
“error…!!!”
路径,程序说该文件无效

示例:
Home Home.png
标记为无效,但
Home.png
标记为有效

即使包含withe空格,我们如何匹配文件名

下面是我的代码

public boolean fileUpload(UploadedFile uploadFile) {

    boolean validFile = true;
    System.out.println("file date...!!!" + uploadFile.getFileName());
    System.out.println("file date...!!!" + uploadFile.getSize());

    String expression = "([^\\s]+(\\.(?i)(jpg|xls|xlsx|doc|jpeg|png|pdf|ppt|pptx|docx|txt|xml|PNG|101701|AQR|ERR|CFR|RPA|AES|CAO|CIC|CAI|IMC|IMA|ITC|CDN|CIR|IMR|IME|ITR|CDR|CUN|CIN|CCN|CGI|IDL|IGR|IIL|IQL|NNL|SSR|STN))$)";

    if ((uploadFile.getSize() != 0)) {

        System.out.println(" file name" + uploadFile.getFileName());

        if ((!uploadFile.getFileName().matches(expression))) {
            System.out.println("error ...!!!" + uploadFile.getFileName());
            validFile = false;
        }
    }
}

因为您正在跳过表达式中的空格。i、 e插入符号(
^
)符号

而是使用:

String expression = "([^\\.]+(\\.(?i)(jpg|xls|xlsx|doc|jpeg|png|pdf|ppt|pptx|docx|txt|xml|PNG|101701|AQR|ERR|CFR|RPA|AES|CAO|CIC|CAI|IMC|IMA|ITC|CDN|CIR|IMR|IME|ITR|CDR|CUN|CIN|CCN|CGI|IDL|IGR|IIL|IQL|NNL|SSR|STN))$)";

如果你同意使用正则表达式,试试这个

字符串fileName=uploadFile.getFileName().replaceAll(“\s+”,”)

(p(([a-a-zA-zA-Z0-Z0-Z0-10-10 10 10 10 10 10 10 10 10 10-p>(([a-a-a-a-zA-zA-zA-zA-Z0-Z0-10-10-10 10 10 10-10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10)和(我)和(jpg(jpg(jpg)p(JPG124G124馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆ITR | CDR | CUN | CIN | CCN | CGI | IDL | IGR | IIL | IQL | NNL | SSR | STN$)


此注册表可以处理任何空间问题

您明确编写的您不想匹配空间:
[^\\s]
uploadFile.getFileName()并将trim()应用于it@Tejal你看过问题了吗?不清楚你想做什么。要替换文件名中的所有空格,还是即使文件名包含空格也要匹配?@jhamon match to match filename即使文件名包含空格也要匹配使用如下两个反斜杠:(“\\s+”,”);
String expression = "([^\\.]+(\\.(?i)(jpg|xls|xlsx|doc|jpeg|png|pdf|ppt|pptx|docx|txt|xml|PNG|101701|AQR|ERR|CFR|RPA|AES|CAO|CIC|CAI|IMC|IMA|ITC|CDN|CIR|IMR|IME|ITR|CDR|CUN|CIN|CCN|CGI|IDL|IGR|IIL|IQL|NNL|SSR|STN))$)";