我想验证一个字符串,它只允许字母数字值并且只 java 中的一个点字符和下划线字符。
String fileName = (String) request.getParameter("read");
我需要验证从请求中检索的文件名并且应该 满足以上条件
我在 "^[a-zA-Z0-9_'.']*$"
中尝试过,但这允许多个点字符
我需要在给定的场景中验证我的字符串,
1 。文件名仅包含字母数字值。 2.它只允许一个点字符 (.) ,例如:fileRead.pdf, fileWrite.txt 等 3.它只允许下划线字符。所有其他符号应该是 拒绝
谁能帮我解决这个问题?
最佳答案
你应该使用 String.matches() 方法:
System.out.println("My_File_Name.txt".matches("\\w+\\.\\w+"));
您也可以使用 java.util.regex 包。
java.util.regex.Pattern pattern =
java.util.regex.Pattern.compile("\\w+\\.\\w+");
java.util.regex.Matcher matcher = pattern.matcher("My_File_Name.txt");
System.out.println(matcher.matches());
有关 REGEX 和 JAVA 的更多信息,请查看此页面: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
关于Java 正则表达式验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44584622/