Java 正则表达式验证

标签 java regex string

我想验证一个字符串,它只允许字母数字值并且只 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/

相关文章:

java - 如何将自己的代码添加到现有代码而不修改它?

java - 如何正确显示表格?

asp.net - 正则表达式检查字符串至少包含一个字母或数字

java - 如何从 java ArrayList 对象转换为实际值

java - 我可以让 jar 执行 python 脚本吗?

c# - 在 C# 中使用 System.IO.File.ReadAllLines(fil) 跳过第一行

python - 使用正则表达式Python根据模式提取部分字符串

c - 如何定义和初始化结构体内部的字符串数组?

c++ - 如何解析包含一系列矩形数据的字符串?

Python:使用python从一行中提取以数字开头的匹配单词